python中的列舉問題

2021-10-02 01:31:35 字數 1370 閱讀 1071

1, 列舉其實是乙個類

列舉的標識最好大寫

from enum import enum

class vip(enum):

yellow=1

green=2

black=3

red=4

2列舉相較於普通類有什麼區別

字典和普通類:可變,沒有防止相同標籤的功能

3,列舉型別,列舉名稱和列舉值

如何獲取列舉下對應的每乙個值

vip.yellow.value
如何獲取列舉下對應的標籤

vip.yellow.name
如何獲取列舉下對應的型別

vip['green']
列舉的遍歷

from v in vip:

print(v)

4列舉的比較運算

vip.green==vip.yellow

false

列舉不可大小比較,但是可身份比較

列舉跨類不好比較

5列舉的注意事項

列舉的標籤不可相同

列舉的數值可相同,但如果相同,則第二個標籤代表著這個列舉的別名

遍歷時無法遍歷別名的那個列舉

但如果需要,可用:

for v in vip.__members__.items:

print(v)

for v in vip.__members:

print(v)

yellow

green

black

red

6列舉的轉換

在資料庫中訪問的是具體的數值(更簡潔,推薦)或字串

在**中使用列舉類而不要使用數值代替,可讀性增強

如果在資料庫裡查詢的是數字,如何使列舉型別與之對應(如何把數字轉化為列舉型別):

a=1

print(vip(a))

7列舉小結

from enum import intenum
使列舉對應的每個數值都為int型

from enum import enum,unique

@unique

限制每個值不同

列舉型別無法例項化

python3中的列舉

對於vip鑽石顏色表示 from enum import enum class vip enum yellow 1 green 2 black 3 red 4 賦值時也可以是不相等的字串 print vip.yellow 輸出vip.yellow列舉就是乙個類其他實現方法 模組中定義變數 yello...

python爬蟲所遇問題列舉

1 通過python socket庫來構造請求報文,向伺服器傳送請求時 remote address 183.61.138.62 443 raddr 183.61.138.62 80 80表示http協議預設埠,443表示https協議預設埠 2 在瀏覽器中輸入位址,然後除錯network視窗發現,...

python列舉型別 python基礎 列舉類

python 列舉類 示例 2016 8 30 18 55 25 mengmengcoding coding utf 8 from enum importenum enum是乙個列舉類 month,weekday各為乙個enum類的例項化 month enum month jan feb mar a...