查找比对的时候是数值类型,性能还是很不错的

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'>