python中沒有enum枚舉類型,可能python認(rèn)為這玩意壓根就沒用,下面列舉了三種方法模擬enum枚舉類型
方法1.使用自定義類
classNumbers(object):
ONE=1
TWO=2
THREE=3
assertNumbers.ONE==1
assertNumbers.TWO==2
assertNumbers.THREE==3
方法2:使用函數(shù)動(dòng)態(tài)創(chuàng)建類
defenum(**enums):
returntype('Enum',(object,),enums)
Numbers=enum(ONE=1,TWO=2,THREE=3)
assertNumbers.ONE==1
assertNumbers.TWO==2
assertNumbers.THREE==3
方法3:創(chuàng)建一個(gè)從python的集合擴(kuò)展來的對象
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
以上內(nèi)容為大家介紹了Python培訓(xùn)之有枚舉類型嗎?,希望對大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。