23 列舉類和元類

2022-07-21 02:36:11 字數 869 閱讀 8999

列舉類

from enum import enum

month = enum('month', ('jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec'))

可以直接使用month.jan來引用乙個常量,或者列舉它的所有成員:

for name, member in month.__members__.items():

print(name, '=>', member, ',', member.value)

value屬性則是自動賦給成員的int常量,預設從1開始計數。

如果需要更精確地控制列舉型別,可以從enum派生出自定義類:

from enum import enum, unique

@unique

class weekday(enum):

sun = 0 # sun的value被設定為0

mon = 1

tue = 2

wed = 3

thu = 4

fri = 5

sat = 6

@unique裝飾器可以幫助我們檢查保證沒有重複值。

>>> day1 = weekday.mon

>>> print(day1)

weekday.mon

>>> print(weekday.tue.value)

2

enum可以把一組相關常量定義在乙個class中,且class不可變,而且成員可以直接比較。

元類

C 類和物件(七) 列舉

列舉是乙個值型別,包含一組命名的常量,如這裡的color型別。列舉型別用enum關鍵字定義 public enum color red,green,blue 可以宣告列舉型別的變數,如變數c1,用列舉型別的名稱作為字首,設定乙個命名常量,來賦予列舉中的乙個值 color c1 color.red w...

Kotlin筆記 八 八 列舉類

kotlin使用enum class關鍵字定義列舉類,可以實現乙個或多個介面 列舉類的所有例項必須在 第一行顯式列出 例項間用 隔開,以 結束 列舉類可以有自己的 屬性 方法 構造器 構造器只能使用private修飾符,省略則預設使用private 列舉類應該被設為不可變類,屬性不應該允許改變,推薦...

Python類學習(九 列舉類Enum

目錄 1.兩種方式定義列舉類 1 直接使用enum 函式列出多個列舉值來建立列舉類 2 通過繼承enum類定義列舉類 2.列舉類定義建構函式 什麼是列舉類?物件有限且固定的類 比如季節類,只包括春夏秋冬四個物件 from enum import enum 定義season列舉類 season enu...