【发布时间】:2019-11-13 14:23:43
【问题描述】:
而不是NewBreakfast-style enums,假设在一个项目中你仍然有OldBreakfast-style enums,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()ing 所看到的,从“旧”迁移到“新”的一个好处是,在单步执行时,或者在这里打印时,人们可以看到自己在吃什么,而不是必须回到代码并反向映射代码。
令人高兴的是,将枚举更新为新样式涉及的操作非常有限。特别是,只有定义本身是必要的。其他一切都会变魔术。
最后这句话真的准确吗?有没有需要注意的陷阱?
【问题讨论】: