10.4 使用枚舉類
當(dāng)我們需要定義常量時(shí),一個(gè)辦法是用大寫變量通過整數(shù)來定義,例如月份:
好處是簡(jiǎn)單,缺點(diǎn)是類型是int
,并且仍然是變量。
更好的方法是為這樣的枚舉類型定義一個(gè)class類型,然后,每個(gè)常量都是class的一個(gè)唯一實(shí)例。Python提供了Enum
類來實(shí)現(xiàn)這個(gè)功能:
這樣我們就獲得了Month
類型的枚舉類,可以直接使用Month.Jan
來引用一個(gè)常量,或者枚舉它的所有成員:
value
屬性則是自動(dòng)賦給成員的int
常量,默認(rèn)從1
開始計(jì)數(shù)。
如果需要更精確地控制枚舉類型,可以從Enum
派生出自定義類:
@unique
裝飾器可以幫助我們檢查保證沒有重復(fù)值。
訪問這些枚舉類型可以有若干種方法:
可見,既可以用成員名稱引用枚舉常量,又可以直接根據(jù)value的值獲得枚舉常量。
小結(jié)
Enum
可以把一組相關(guān)常量定義在一個(gè)class中,且class不可變,而且成員可以直接比較。
標(biāo)簽: