根据所用python版本和enum34安装情况决定如何使用enum。
enum改版是在python3.4提出的,python2上如果环境里安装了enum34(pip可直接安装)会具有python3中enum的改版特性。
python环境有enum34包或者当前python版本大于等于3.4时,使用enum可参考下面
需要使用.value获取到具体的值,但使用IntEnum后可以直接与值比较
from enum import Enum
from enum import IntEnum
class TestEnum(Enum):
NOT = 0
OK = 1
class TestIntEnum(IntEnum):
NOT = 0
OK = 1
if __name__ == '__main__':
print(TestEnum.NOT) # TestEnum.NOT
print(TestEnum.NOT == 0) # False
print(TestEnum.NOT.value) # 0
print(TestIntEnum.NOT) # TestIntEnum.NOT
print(TestIntEnum.NOT == 0) # True
print(TestIntEnum.NOT.value) # 0
当python版本小于3.4且没安装enum34包时,没有IntEnum和.value的概念,直接会把枚举值翻译成对应的值,使用参考如下:
from enum import Enum
class TestEnum(Enum):
NOT = 0
OK = 1
if __name__ == '__main__':
print(TestEnum.NOT) # 0
print(TestEnum.NOT == 0) # True