2.1.4 唯一列舉值
有相同值的enum成員會被處理為同乙個成員物件的別名引用。別名可以避免enum的迭代器**現重複的值。
import enum
class
bugstatus
(enum.enum)
: new =
7 incomplete =
6 invalid =
5 wont_fix =
4 in_progress =
3 fix_committed =
2 fix_released =
1 by_design =
4 closed =
1for status in bugstatus:
print
(' = {}'
.format
(status.name,status.value)
)print
('\nsame:by_design is wont_fix: '
, bugstatus.by_design is bugstatus.wont_fix)
print
('same:closed is fix_released: '
, bugstatus.closed is bugstatus.fix_released)
由於by_design和closed是其他成員的別名,迭代處理enum時它們不會單獨出現在輸出中。乙個成員的規範名是與這個值關聯的第乙個名字。
執行結果:
如果要求所有成員有唯一的值,則要為enum增加@unique修飾符。
import enum
@enum.unique
class
bugstatus
(enum.enum)
: new =
7 incomplete =
6 invalid =
5 wont_fix =
4 in_progress =
3 fix_committed =
2 fix_released =
1 by_design =
4 closed =
1
解釋enum類時,有重複值的成員會觸發乙個valueerror異常。
執行結果:
第二章 資料結構 enum 列舉型別 迭代
2.1.2 迭代 迭代處理enum類會生成列舉的各個成員。import enum class bugstatus enum.enum new 7 incomplete 6 invalid 5 wont fix 4 in progress 3 fix committed 2 fix relessed ...
第二章 資料結構 二
知識點 trie樹 並查集,堆的操作 高效地儲存和查詢字串集合的資料結構 const int n 100010 int son n 26 cnt n idx 插入 void insert char str cnt p 以這個點結尾的字元數 查詢 intquery char str return cn...
資料結構 第二章總結
線性表是由n 0 個資料元素組成的有限序列。我們學習了線性表上定義的基本運算 有構造空表 initlist l 求表長 listlength l 取結點 getnode l i 查詢 locatenode l x 插入 insertlist l x,i 刪除 delete l i 還學習了順序表 單...