Método estático Python
Este artigo demonstra como você pode criar e usar métodos estáticos em Python.
Método estático Python
Um método estático pertence a uma classe; ainda assim, não está vinculado ao objeto dessa classe. Assim, ele pode ser chamado sem criar uma instância da classe em que reside. Como os métodos estáticos não estão vinculados a um objeto, ele não conhece as propriedades de uma classe, portanto não pode acessar ou modificar as propriedades de a classe.
Criar e usar um método estático Python
Primeiro, vamos criar um método de instância para que possamos diferenciá-lo de um método estático. Digamos que temos uma classe Coffee
com um método chamado is_hot
que aceita um inteiro como parâmetro. Ele retorna True
se o número inteiro fornecido for maior que 50 e False
se for menor que 50.
class Coffee:
def is_hot(self, temperature):
return temperature > 50
coffee = Coffee()
print(coffee.is_hot(100))
Resultado:
True
No exemplo acima, coffee
, que é uma instância da classe Coffee
, foi instanciado para poder chamar o método is_hot
.
Agora, vamos transformar is_hot
em um método estático usando o decorador @staticmethod
. É um decorador embutido que é usado para definir um método como um método estático.
class Coffee:
@staticmethod
def is_hot(temperature):
return temperature > 50
print(Coffee.is_hot(100))
Resultado:
True
Ao contrário do método de instância que criamos no exemplo anterior, você não precisa passar self
como um parâmetro para métodos estáticos e não precisa criar uma instância da classe para poder usar um método estático . Você pode simplesmente usar o processo diretamente.
Alternativamente, a função staticmethod()
pode ser usada na criação de um método estático. Esta é uma função incorporada que recebe uma função como parâmetro e a retorna como um método estático.
class Coffee:
def is_hot(temperature):
return temperature > 50
Coffee.is_hot = staticmethod(Coffee.is_hot)
print(Coffee.is_hot(100))
Resultado:
True
Os métodos estáticos são úteis ao criar métodos utilitários que executam uma tarefa isoladamente, pois não precisam acessar ou modificar as propriedades de uma classe; ele só funciona com os dados passados nos argumentos.
Em resumo, podemos criar um método estático usando o decorador @staticmethod
ou a função staticmethod()
. Você não precisa ter uma instância de uma classe para chamar um método estático; podemos simplesmente chamá-lo diretamente.