Enum类型通过PEP 435进入Python 。给出的理由是:
枚举的属性可用于定义一组不变的,相关的常数值,这些常数值可能具有也可能没有语义。
当为此目的使用数字和字符串时,它们可以被表征为“魔术数字”或“魔术字符串”。数字很??少带有语义,字符串很容易混淆(大写,拼写,蛇形或驼峰式大写?)
星期几和学校字母成绩是这种价值集合的例子。
这是docs中的示例:
from enum import Enum
class Color(Enum):
red = 1
green = 2
blue = 3
像裸类一样,这比namedtuple示例更具可读性和优雅性,它也是不可变的,并且还有其他好处,如下所述。