第二章 資料結構 enum 列舉型別 唯一列舉值

2021-09-10 14:42:06 字數 1377 閱讀 7149

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 還學習了順序表 單...