python學習 列舉類

2021-08-28 00:02:18 字數 1156 閱讀 7388

當我們需要定義常量時,一般的做法就是使用大寫變數通過整數來定義,例如月份:

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派生出自定義類:

studentgender屬性改造為列舉型別,可以避免使用字串:

# -*- 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...