Método estático Python

TJ Lerias 10 outubro 2023
  1. Método estático Python
  2. Criar e usar um método estático Python
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.

Artigo relacionado - Python Class