Programador Leigo
⚡ 60 segundos classes

@staticmethod vs @classmethod: quando usar cada um

staticmethod não recebe self nem cls, classmethod recebe cls. Use staticmethod para utilitários e classmethod para construtores alternativos.

staticmethod.py
class Temperatura:
    def __init__(self, celsius):
        self.celsius = celsius

    @classmethod
    def de_fahrenheit(cls, f):
        return cls((f - 32) * 5 / 9)

    @staticmethod
    def ponto_ebulicao():
        return 100

t = Temperatura.de_fahrenheit(212)
print(t.celsius)  # 100.0
print(Temperatura.ponto_ebulicao())  # 100

Compartilhar