在其他语言中,大部分都有枚举的存在,旨在对一组相似的值进行范围的限定,那么在Python中需要实现枚举,需要使用enum模块。
enum模块提供三个对象:
Enum:一般的枚举,其值可以是任何类型。
IntEnum:值只能是数字(10进制,16进制,8进制)类型。
unique:修饰器,表示其值是否唯一。
定义方式:
(一):Enum
import enum
@enum.unique
class MyEnum(enum.Enum):
Enum1 = 1
Enum2 = 2
Enum3 = "TTT"
unique:限定枚举值唯一,当出现值重复时,将抛出异常。
print MyEnum.Enum3 # MyEnum.Enum3
print MyEnum.Enum3.name # 取枚举名Enum3
print MyEnum.Enum3.value # 取枚举值 TTT
(二):IntEnum
@enum.unique
class MyEnum(enum.IntEnum):
Enum1 = 1
Enum2 = 2
Enum3 = 3
print MyEnum.Enum3 # MyEnum.Enum3
print MyEnum.Enum3.name # 取枚举名Enum3
print MyEnum.Enum3.value # 取枚举值 3
当值为非整数时,将抛出异常。