查找比对的时候是数值类型,性能还是很不错的
from collections import namedtuple
def MakeEnum(enumList):
return namedtuple('Enum', enumList)._make(range(len(enumList)))
USER_AT = MakeEnum(['noLogined', 'logined', 'hall', 'room'])
print USER_AT, type(USER_AT)
print USER_AT.noLogined, type(USER_AT.noLogined)
print USER_AT._fields[USER_AT.noLogined], type(USER_AT._fields[USER_AT.noLogined])
输出为
Enum(noLogined=0, logined=1, hall=2, room=3) <class '__main__.Enum'>
0 <type 'int'>
noLogined <type 'str'>