Método estático Python
Neste rápido post, vamos aprender como criar e usar um método estático Python. Também vamos dar uma olhada nas vantagens e desvantagens que 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 similares aos métodos de nível de classe, com a diferença de 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 Python
Métodos estáticos Python podem ser criados de duas maneiras. Vamos ver cada uma das maneiras aqui:
Usando staticmethod()
Vamos direto para um trecho de código de exemplo sobre como usar a abordagem staticmethod()
:
class Calculator:
def addNumbers(x, y):
return x + y
# criar o 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 aqui. 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 forma mais sutil de criar um método estático, pois não precisamos confiar em uma definição de declaração de método como sendo um método de classe e tornando-o estático em cada lugar em que o tornamos estático. Vamos usar essa anotação em um trecho de código:
class Calculator:
# criar o 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: Na verdade, essa foi 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 o 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 é muito vantajoso quando precisamos criar métodos utilitários, pois geralmente eles não estão vinculados ao ciclo de vida de um objeto. Por fim, observe que em um método estático, não precisamos passar o self
como primeiro argumento. Referência da API: Documentação do Python
Source:
https://www.digitalocean.com/community/tutorials/python-static-method