亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

枚舉類的使用

實際開發(fā)中,我們離不開定義常量,當(dāng)我們需要定義常量時,其中一個辦法是用大寫變量通過整數(shù)來定義,例如月份:

JAN = 1
FEB = 2
MAR = 3
...
NOV = 11
DEC = 12

當(dāng)然這樣做簡單快捷,缺點是類型是 int ,并且仍然是變量。

那有沒有什么好的方法呢?

這時候我們定義一個 class 類型,每個常量都是 class 里面唯一的實例。正好 Python 提供了 Enum 類來實現(xiàn)這個功能如下:

#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
from enum import Enum
Month = Enum('Month', ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'))
# 遍歷枚舉類型
for name, member in Month.__members__.items():
    print(name, '---------', member, '----------', member.value)
# 直接引用一個常量
print('\n', Month.Jan)

輸出的結(jié)果如下:

a41b1b020149ba50432eae7d4913fa0.png

可見,我們可以直接使用 Enum 來定義一個枚舉類。上面的代碼,我們創(chuàng)建了一個有關(guān)月份的枚舉類型 Month ,這里要注意的是構(gòu)造參數(shù),第一個參數(shù) Month 表示的是該枚舉類的類名,第二個 tuple 參數(shù),表示的是枚舉類的值;當(dāng)然,枚舉類通過 __members__ 遍歷它的所有成員的方法。注意的一點是 , member.value 是自動賦給成員的 int類型的常量,默認是從 1 開始的。而且 Enum 的成員均為單例(Singleton),并且不可實例化,不可更改

繼續(xù)學(xué)習(xí)