Classe estática em Python
-
Use o decorador
@staticmethod
para criar uma classe estática em Python -
Use o decorador
@classmethod
para criar uma classe estática em Python - Use um arquivo de módulo para criar uma classe estática em Python
Uma classe estática é um recurso útil na programação. Uma classe estática não pode ser herdada e não pode ser instanciada. Não existe uma maneira direta de tornar uma classe estática. Em Python, podemos implementar uma classe estática tornando seus métodos e variáveis estáticos.
Neste artigo, implementaremos esses métodos.
Use o decorador @staticmethod
para criar uma classe estática em Python
Para implementar uma classe estática, podemos tornar seus métodos e variáveis estáticos. Para isso, podemos usar o decorador @staticmethod
para criar métodos em uma classe estática. Um decorador é uma função especial especificada antes de uma função e usa toda a função como parâmetro.
Por exemplo,
class abc(object):
@staticmethod
def static_method():
print("Hi,this tutorial is about static class in python")
abc.static_method()
Produção:
Hi,this tutorial is about static class in python
Observe que esse método só funciona em versões do Python superiores a 2.6.
Use o decorador @classmethod
para criar uma classe estática em Python
O @classmethod
pode tornar um método estático para a classe e não seu objeto. Tem várias vantagens sobre o decorador @staticmethod
. Também funcionará com subclasses e pode modificar o estado da classe.
No entanto, requer um argumento obrigatório a ser incluído no método denominado cls
.
Veja o seguinte código.
class abc(object):
@classmethod
def static_method(cls):
print("Hi,this tutorial is about static class in python")
abc.static_method()
Produção:
Hi,this tutorial is about static class in python
Use um arquivo de módulo para criar uma classe estática em Python
Em Python, provavelmente a melhor maneira de implementar uma classe estática é criando um módulo. Podemos importar um módulo, e suas funções podem ser acessadas usando o nome do módulo. Não requer que nenhum objeto seja instanciado e não pode ser herdado.
Veja o seguinte exemplo.
def static_method():
print("Hi this is the content of the module file")
O código acima pode ser uma função simples em um script Python que pode ser importado como um módulo.
Por exemplo, se o nome do script Python acima for abc.py
, podemos fazer algo como mostrado abaixo.
import abc
abc.static_method()
Produção:
Hi,this tutorial is about static class in python