赞
赏
枚举是一组符号名称(枚举成员)的集合,枚举成员应该是唯一的、不可变的。在枚举中,可以对成员进行恒等比较,并且枚举本身是可迭代的。
在 Python 中,枚举的第一个值是从 1 开始的,而不是从 0 开始的。
程序有两种方式来定义枚举类:直接使用 Enum 包列出多个枚举值来创建枚举类和通过 继承 Enum 基类来派生枚举类。
import enum
# 定义枚举类
Day = enum.Enum('Day', ('Mon', 'Tue', 'Wed', 'Thur', 'Fri', 'Sat', 'Sun'))
# 直接访问指定枚举
print(Day.Tue)
print(Day.Tue.name)
print(Day.Tue.value)
使用 enum.Enum 定义枚举类,接着,直接使用枚举名访问枚举成员,还可以使用枚举的 name 属性访问枚举名,使用枚举的 value 属性访问枚举值。
使用 Enum 包实现枚举,并访问枚举成员
import enum
print("嗨客网(www.haicoder.net)")
# 定义Day枚举类
Day = enum.Enum('Day', ('Mon', 'Tue', 'Wed', 'Thur', 'Fri', 'Sat', 'Sun'))
# 直接访问指定枚举
print(Day.Tue)
print(Day.Sun)
print("MonName =", Day.Mon.name)
print("MonValue =", Day.Mon.value)
print("SunName =", Day.Sun.name)
print("SunValue =", Day.Sun.value)
程序运行后,控制台输出如下:
我们直接使用 enum.Enum 定义了一个 Day 枚举,该枚举有七个成员,我们可以直接使用枚举名访问枚举成员,同时,我们还可以使用枚举的 name 属性访问枚举名,使用枚举的 value 属性访问枚举值。
还可以使用枚举变量名来访问枚举成员
import enum
print("嗨客网(www.haicoder.net)")
# 定义Day枚举类
Day = enum.Enum('Day', ('Mon', 'Tue', 'Wed', 'Thur', 'Fri', 'Sat', 'Sun'))
# 通过枚举变量名访问枚举
print(Day['Tue'])
print(Day['Sun'])
print("MonName =", Day['Mon'].name)
print("MonValue =", Day['Mon'].value)
程序运行后,控制台输出如下:
我们直接使用 enum.Enum 定义了一个 Day 枚举,并且使用枚举名加枚举值的形式来访问枚举。
使用 for 循环遍历枚举的所有成员
import enum
print("嗨客网(www.haicoder.net)")
# 定义Day枚举类
Day = enum.Enum('Day', ('Mon', 'Tue', 'Wed', 'Thur', 'Fri', 'Sat', 'Sun'))
for name, member in Day.__members__.items():
print(name, '=>', member, ',', member.value)
程序运行后,控制台输出如下:
使用 for 循环 遍历枚举名的 memebers 成员,从而获取所有的枚举成员。
枚举是一组符号名称(枚举成员)的集合,枚举成员应该是唯一的、不可变的。在枚举中,可以对成员进行恒等比较,并且枚举本身是可迭代的。
在 Python 中,枚举的第一个值是从 1 开始的,而不是从 0 开始的。