新聞中心
這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
創(chuàng)新互聯(lián)Python教程:Python中有枚舉類型嗎?
python中沒(méi)有enum枚舉類型,可能python認(rèn)為這玩意壓根就沒(méi)用,下面列舉了三種方法模擬enum枚舉類型

方法1. 使用自定義類
class Numbers(object): ONE = 1 TWO = 2 THREE = 3 assert Numbers.ONE == 1 assert Numbers.TWO == 2 assert Numbers.THREE == 3
方法2:使用函數(shù)動(dòng)態(tài)創(chuàng)建類
def enum(**enums):
return type('Enum', (object,), enums)
Numbers = enum(ONE=1, TWO=2, THREE=3)
assert Numbers.ONE == 1
assert Numbers.TWO == 2
assert Numbers.THREE == 3方法3:創(chuàng)建一個(gè)從python的集合擴(kuò)展來(lái)的對(duì)象
class Enum(set): def __getattr__(self, name): if name in self: return name raise AttributeError Numbers = Enum( "ONE TWO THREE".split() ) error = False try: print Numbers.ONE print Numbers.TWO print Numbers.THREE except: error = True assert error == False try: print Numbers.FOUR except: error = True assert error == True
標(biāo)題名稱:創(chuàng)新互聯(lián)Python教程:Python中有枚舉類型嗎?
URL分享:http://m.fisionsoft.com.cn/article/cccegps.html


咨詢
建站咨詢
