Pymotw - enum
Python 库 enum
引入于 3.4,出自 PEP435, 使用它可以让我们简化很多按组归类的常量。
- 继承
enum.Enum
逐个定义名字 + 值。 - 可通过循环获得所有值。
- 当值有重复,可认为后续定义的名字是第一个定义的名字的 alias
- 可用 @enum.unique 确保定义中不会有重复值(有重复则报异常)
- 值比较默认支持 is, == 比较。大小比较的话可通过继承
enum.IntEnum
类。 - 可通过
enum.Enum(value='MyValinnaEnum', names='a b c')
这种方法自动生成值从 1 开始的常量。 names
也支持其它值,例如 tuple。