python3中的列舉

2021-10-03 01:17:14 字數 1989 閱讀 1282

對於vip鑽石顏色表示

from enum import enum

class

vip(enum)

: yellow =

1 green =

2 black =

3 red =

4# 賦值時也可以是不相等的字串

print

(vip.yellow)

#輸出vip.yellow

列舉就是乙個其他實現方法:

# 模組中定義變數

yellow =

1green =

2black =

3red =

4# 使用字典

# 使用類封裝資料

class

typediamod()

:yellow =

1green =

2black =

3red =

4

缺點:

from enum import enum

class

vip(enum)

: yellow =

1 green =

2 black =

3 red =

4print

(type

(vip.yellow)

)print

(vip.yellow.name)

print

(type

(vip.yellow.name)

)print

(vip.yellow.value)

print

(type

(vip.yellow.value)

)print

(vip[

"yellow"])

#輸出>

# 表示列舉型別

yellow # 列舉名稱,標籤名

<

class

'str'

>

# 列舉名稱的型別:字串

2#列舉值

<

class

'int'

>

vip.yellow # 列舉型別

等值比較運算

print

(vip.yellow == vip.yellow)

# 輸出

true

from enum import enum

class

vip(enum)

: yellow =

1 green =

2 black =

3 red =

4for v in vip:

print

(v)# 輸出

vip.yellow

vip.green

vip.black

vip.red

列舉的注意事項:

enum:不限制列舉型別數值的資料型別

intenum:限制列舉型別數值必須為整形

列舉型別是單例模式(23種設計模式中的一種),不能例項化

加上裝飾器 unique :規定兩個不同的列舉型別不能取相同數值

from enum import enum

from enum import intenum, unique

@unique

class

vip(intenum)

: yellow =

1 green =

1 black =

3 red =

4# 輸出

valueerror: duplicate values found in

>

: green -

> yellow

python3中異常處理 Python3異常處理

python的異常處理機制 使用 try.except 捕獲異常 try 業務實現 except error1,error2,as e 出現異常後的處理 異常類的繼承關係 baseexception systemexit keyboardinterrupt generatorexit excepti...

python3怎麼賦值 python3中賦值問題?

我閒著沒事乾來詳細回答一波。phthon的物件實際儲存在記憶體上,而變數名對應了乙個位址,位址指向了那一塊記憶體。在第一例中,python在記憶體中開出了一片用來儲存int值1,然後將它的位址賦值給a,接下來a把位址賦值給b。此時a,b指向同乙個int值物件。後來b 1的操作做的是先計算b 1,計算...

python3中的字典

字典是一種對映,eng2sp dict print eng2sp eng2sp one undo print eng2sp eng2sp two df print eng2sp d eng2sp one print d 字典中的順序是不可預料的 a len eng2sp 顯示鍵值對的個數 print...