python中没有enum枚举类型,可能python认为这玩意压根就没用,下面列举了三种方法模拟enum枚举类型
方法1.使用自定义类
classNumbers(object):
ONE=1
TWO=2
THREE=3
assertNumbers.ONE==1
assertNumbers.TWO==2
assertNumbers.THREE==3
方法2:使用函数动态创建类
defenum(**enums):
returntype('Enum',(object,),enums)
Numbers=enum(ONE=1,TWO=2,THREE=3)
assertNumbers.ONE==1
assertNumbers.TWO==2
assertNumbers.THREE==3
方法3:创建一个从python的集合扩展来的对象
classEnum(set):
def__getattr__(self,name):
ifnameinself:
returnname
raiseAttributeError
Numbers=Enum("ONETWOTHREE".split())
error=False
try:
printNumbers.ONE
printNumbers.TWO
printNumbers.THREE
except:
error=True
asserterror==False
try:
printNumbers.FOUR
except:
error=True
asserterror==True
以上内容为大家介绍了Python培训之有枚举类型吗?,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:千锋教育。