Python:有关IntEnum类型的比较
枚举类型的使用请参考:Python3.4 枚举类型的使用。
我们在使用Enum定义枚举类型,枚举的成员不是整型,所以在做比较时不能使用如大于号(">"),小于号(“<”)作比较。只用做相等性比较。但直接和整型做相等比较,结果都为False。
Python新增了IntEnum,IntEnum是允许和整型做比较,包括大小比较和值得相等比较。
创建IntEnum
定义IntEnum首先要导入IntEnum
>>>from enum import IntEnum
和Enum一样,IntEnum也有两种方式创建:基于class和基于Function API。
基于class创建IntEnum
>>> from enum import IntEnum
>>> class Shape(IntEnum):
... circle = 1
... square = 2
...
基于Function API创建IntEnum
>>>from enum import IntEnum
>>>Shape = IntEnum('Shap','circle square')
比较IntEnum
>>> Shape.circle == 1
True
>>> Shape.circle < Shape.square
True
和别的IntEnum类型比较
>>>Color = IntEnum('Color','red green blue')
>>>Shape.circle == Color.red
True
可以看出,IntEnum的枚举做比较时,比较的是它们的值,即使是两个不同的IntEnum枚举类型,只要它们的值相等,那么就是两个类型的成员相等。