當我們需要定義常量時,一般的做法就是使用大寫變數通過整數來定義,例如月份:
jan = 1
feb = 2
mar = 3
apr = 4
may = 5...
這種做法簡單,但型別仍是變數且是int類
更好的方法是為這樣的列舉型別定義乙個class型別,然後,每個常量都是class的乙個唯一例項。python提供了enum
類來實現這個功能:
>>> from enum import enum
>>> month = enum('month',('jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec'))
>>> month
>>> for i in month:
... print(i)
month.jan
month.feb
month.mar
month.apr
month.may
month.jun
month.jul
month.aug
month.sep
month.oct
month.nov
month.dec
成員有個value屬性自動給每個成員賦值為int型別從1開始。
>>> month.jan.value
1>>> month.dec.value
12如果需要更精確地控制列舉型別,可以從enum
派生出自定義類:
把student
的gender
屬性改造為列舉型別,可以避免使用字串:
# -*- coding: utf-8 -*-from enum import enum, unique
@unique
class gender(enum):
male = 0
female = 1
class student(object):
def __init__(self, name, gender):
self.name = name
self.gender = gender
Python列舉類(Enum 學習
an enumeration is a set of symbolic names members bound to unique,constant values.within an enumeration,the members can be compared by identity,and th...
Python類學習(九 列舉類Enum
目錄 1.兩種方式定義列舉類 1 直接使用enum 函式列出多個列舉值來建立列舉類 2 通過繼承enum類定義列舉類 2.列舉類定義建構函式 什麼是列舉類?物件有限且固定的類 比如季節類,只包括春夏秋冬四個物件 from enum import enum 定義season列舉類 season enu...
python 使用列舉類
當我們需要定義常量時,乙個辦法是用大寫變數通過整數來定義,例如月份 jan 1 feb 2 mar 3 nov 11 dec 12好處是簡單,缺點是型別是int,並且仍然是變數。更好的方法是為這樣的列舉型別定義乙個class型別,然後,每個常量都是class的乙個唯一例項。python提供了enum...