Junior — Middle
Qual é a diferença entre usar um método estático e um método de classe em Python?
sobes.tech IA
Resposta da IA
Um método estático em Python é um método que não recebe automaticamente nem uma instância da classe (self) nem a própria classe (cls) como primeiro argumento. Ele é declarado com o decorador @staticmethod e comporta-se como uma função normal, mas logicamente pertence à classe.
Um método de classe é declarado com o decorador @classmethod e recebe a classe (cls) como primeiro argumento. Isso permite que o método trabalhe com a própria classe, por exemplo, criando novas instâncias ou modificando propriedades da classe.
Exemplo:
class MyClass:
@staticmethod
def static_method():
print("Este é um método estático")
@classmethod
def class_method(cls):
print(f"Este é um método de classe, chamado para {cls}")
MyClass.static_method() # Vai imprimir: Este é um método estático
MyClass.class_method() # Vai imprimir: Este é um método de classe, chamado para <class '__main__.MyClass'>
Portanto, use o método estático quando a função não depende do estado da classe ou de suas instâncias, e o método de classe quando precisar trabalhar com a própria classe.