Método estático Python
Neste post rápido, aprenderemos como criar e usar um método estático em Python. Também iremos analisar quais vantagens e desvantagens os métodos estáticos oferecem em comparação com os métodos de instância. Vamos começar.
O que é um método estático?
Métodos estáticos em Python são extremamente semelhantes aos métodos de nível de classe, a diferença é que um método estático está vinculado a uma classe em vez dos objetos para essa classe. Isso significa que um método estático pode ser chamado sem um objeto para essa classe. Isso também significa que métodos estáticos não podem modificar o estado de um objeto, pois não estão vinculados a ele. Vamos ver como podemos criar métodos estáticos em Python.
Criando métodos estáticos em Python
Métodos estáticos em Python podem ser criados de duas maneiras. Vamos ver cada uma das maneiras aqui:
Usando staticmethod()
Vamos diretamente para um trecho de código de exemplo sobre como usar a abordagem staticmethod()
:
class Calculator:
def addNumbers(x, y):
return x + y
# criar método estático addNumbers
Calculator.addNumbers = staticmethod(Calculator.addNumbers)
print('Product:', Calculator.addNumbers(15, 110))
Observe que chamamos o addNumbers que criamos sem um objeto. Quando executamos este programa, aqui está a saída que obteremos: Não houve surpresas lá. Esta abordagem é controlada, pois em cada lugar é possível criar um método estático a partir de um método de classe também. Vamos ver outra abordagem com o mesmo exemplo aqui.
Usando @staticmethod
Esta é uma maneira mais sutil de criar um método estático, pois não precisamos depender de uma definição de declaração de um método sendo um método de classe e tornando-o estático em cada lugar que o tornamos estático. Vamos usar esta anotação em um trecho de código:
class Calculator:
# criar método estático addNumbers
@staticmethod
def addNumbers(x, y):
return x + y
print('Product:', Calculator.addNumbers(15, 110))
Quando executamos este programa, aqui está a saída que obteremos: Esta foi realmente uma maneira muito melhor de criar um método estático, pois a intenção de manter o método estático fica clara assim que o criamos e marcamos com a anotação
@staticmethod
.
Vantagens do método estático em Python
Os métodos estáticos têm um caso de uso muito claro. Quando precisamos de alguma funcionalidade não relacionada a um objeto, mas relacionada à classe completa, tornamos um método estático. Isso é bastante vantajoso quando precisamos criar métodos utilitários, pois geralmente eles não estão vinculados ao ciclo de vida de um objeto. Finalmente, observe que em um método estático, não precisamos passar o self
como o primeiro argumento. Referência da API: Documentação do Python
Source:
https://www.digitalocean.com/community/tutorials/python-static-method