Junior — Middle
Qual é a finalidade do decorador @staticmethod em Python e em que se diferencia dos métodos normais da classe?
sobes.tech IA
Resposta da IA
O decorador @staticmethod em Python é usado para definir um método dentro de uma classe que não depende de uma instância da classe e não aceita automaticamente o parâmetro self.
Diferenças em relação aos métodos normais:
- Métodos normais aceitam como primeiro parâmetro
self— uma referência à instância atual da classe. - Métodos estáticos não aceitam nem
selfnemcls(uma referência à classe).
Isto significa que um método estático é simplesmente uma função logicamente relacionada com a classe, mas que não utiliza o seu estado.
Exemplo:
class MyClass:
@staticmethod
def static_method(x, y):
return x + y
def instance_method(self, x, y):
return x * y
print(MyClass.static_method(3, 4)) # 7
obj = MyClass()
print(obj.instance_method(3, 4)) # 12
Métodos estáticos são úteis para funções utilitárias que fazem sentido no contexto da classe, mas que não requerem acesso aos seus dados.