但有些時候我們需要控制枚舉的類型,那么我們可以 Enum 派生出自定義類來滿足這種需要。通過修改上面的例子:
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
from enum import Enum, unique
Enum('Month', ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'))
# @unique 裝飾器可以幫助我們檢查保證沒有重復值
@unique
class Month(Enum):
Jan = 'January'
Feb = 'February'
Mar = 'March'
Apr = 'April'
May = 'May'
Jun = 'June'
Jul = 'July'
Aug = 'August'
Sep = 'September '
Oct = 'October'
Nov = 'November'
Dec = 'December'
if __name__ == '__main__':
print(Month.Jan, '----------',
Month.Jan.name, '----------', Month.Jan.value)
for name, member in Month.__members__.items():
print(name, '----------', member, '----------', member.value)
輸出的結(jié)果如下:
通過上面的例子,可以知道枚舉模塊定義了具有迭代 (interator) 和比較(comparison) 功能的枚舉類型。 它可以用來為值創(chuàng)建明確定義的符號,而不是使用具體的整數(shù)或字符串。