举例
from enum import IntEnum, Enum, unique @unique class Sex(IntEnum): male = 1 female = 2 class Color(Enum): RED = 'red' GREEN = 2 BLUE = 3
注意点
1、枚举表示的是常量,因此,建议枚举成员名称使使用大写字母
2、unique确保一个名称只绑定一个值的 Enum 类装饰器。若要不能定义相同的成员值,可以通过 unique 装饰
3、枚举类型不可实例化,不可更改
4、定义枚举时,成员名不允许重复
5、成员值允许相同,第二个成员的名称被视作第一个成员的别名
6、可以通过成员名来获取成员也可以通过成员值来获取成员
Sex['male'] Sex(1)
7、枚举成员具有 名称 和 值
sex = Sex.male # 取key name = sex.name # 取值 val = sex.value
8、支持迭代的方式遍历成员,按定义的顺序,如果有值重复的成员,只获取重复的第一个成员
9、枚举的成员可以通过 is 同一性比较或通过 == 等值比较
10、Enum枚举成员不能进行大小比较
11、IntEnum 是 Enum 的扩展,不同类型的整数枚举也可以相互比较
12、如果确切的值不重要,你可以使用 auto
from enum import Enum, auto class Color(Enum): RED = auto() BLUE = auto() GREEN = auto()