Sobes.tech
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 self nem cls (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.