(Note) Le titre est juste une histoire, pas un disque Python. Je l'aime plutôt.
Introduit dans Python 3.4, enum peut avoir des variables d'instance et des méthodes. Vous n'avez plus à envier l'énumération Java.
Enum avec méthode
from enum import Enum
class JavaLikeEnum(Enum):
foo = ('foo_name', 50)
bar = ('bar_name', 100)
def __init__(self, item_name, price):
self.item_name = item_name
self.price = price
def with_tax(self):
return self.price * 1.08
print(JavaLikeEnum.foo.with_tax())
print(JavaLikeEnum.bar.with_tax())
Le package pour le backport est fourni par pip, donc Python 3.3 ou version antérieure convient parfaitement. Utilisons-le dur à partir de maintenant.
python
% pip search enum34
enum34 - Python 3.4 Enum backported to 3.3, 3.2, 3.1, 2.7, 2.6, 2.5, and 2.4