Qual a diferença entre métodos estáticos no Python e Enum (existente no Java)?
Qual a diferença entre métodos estáticos no Python e Enum (existente no Java)?
Olá Marcelo, tudo bem com você?
Peço desculpas pela demora em lhe responder.
O método estático é um método que não faz referência a um objeto instanciado, um método onde não teremos o uso do self
, será um método estático (sem atividade) direta no objeto e seu comportamento não possui dependência do objeto instanciado. Será feito o uso do decorador @staticmethod
acima do método para sinalizar que ele é estático
Abaixo um exemplo de método estático.
@staticmethod
def codigos_bancos():
return {'BB': '001', 'Caixa': '104', 'Bradesco': '237'}
No código acima temos o método codigos_bancos()
que retorna os códigos cadastrados, seu acesso pode ser realizado diretamente pela classe.
Já o enum do Java, é um tipo de dado que poderá armazenar um conjunto de valores, esses valores constantes, imutáveis, sendo assim um tipo especial de classe do Java. Como apresentado acima, temos que métodos estáticos e enum do Java possuem propósitos e objetivos diferentes.
Mas no Python podemos fazer o uso de algo similar ao enum do Java através do uso da biblioteca enum
, uma biblioteca interna do Python, que não necessita de instalação.
Exemplo de código com a biblioteca Enum
from enum import Enum
class Animal(Enum):
CACHORRO = 1
GATO = 2
print(Animal.CACHORRO)
print(Animal.CACHORRO.value)
print(Animal.CACHORRO.name)
Resultado
Animal.CACHORRO
1
CACHORRO
Para saber um pouco mais sobre enum
no Python, recomendo a leitura do seguinte artigo onde explica com detalhes sobre o uso.
A documentação acima está em inglês, caso tenha dificuldade com o idioma, recomendo o uso do tradutor do navegador.
Deixo também o link para a documentação da biblioteca, para que possa conhecer outros recursos presentes na biblioteca enum.
Fico à disposição em caso de dúvidas.
Abraços e bons estudos