Вместо перечислений в стиле NewBreakfast
предположим, что в проекте все еще есть перечисления в стиле OldBreakfast
, остатки Python2 дней.
from enum import Enum
class OldBreakfast:
HAM = 0x00
EGGS = 0x01
PANCAKES = 0x02
class NewBreakfast(Enum):
HAM = 0x00
EGGS = 0x01
PANCAKES = 0x02
def eat():
food1 = OldBreakfast.HAM
food2 = NewBreakfast.HAM
print(food1)
print(food2)
eat()
Как видно из eat()
в приведенном выше коде, одно из преимуществ перехода от "старого" к "новому" заключается в том, что при пошаговом или, в данном случае, печати можно увидеть, что вы едите, а не необходимо вернуться к коду и выполнить обратное сопоставление кодов.
Приятно, что обновление перечислений в новом стиле требует очень ограниченных манипуляций. В частности, необходимо только само определение. Все остальное будет работать по волшебству.
Действительно ли это последнее утверждение верно? Есть ли ловушки, за которыми нужно следить?
Связанный:
PEP435
1
2
3
4
5