本文主要从枚举的相关定义,取值,迭代器,比较四方面讲解
1. 枚举的定义(三条)
首先,定义枚举要导入enum模块。
枚举定义用class关键字,继承Enum类。
用于定义枚举的class和定义类的class是有区别(用class定义的类,实际上就是一种类型)
from enum import Enum class Color(Enum): red = 1 orange = 2 yellow = 3 green = 4 blue = 5 indigo = 6 purple = 7总结: 枚举定义:先导enum模块再class关键字,继承Enum
注意:定义枚举时,成员名称不允许重复
默认情况下,不同的成员值允许相同。但是两个相同值的成员,第二个成员的名称被视作第一个成员的别名
如果枚举中存在相同值的成员,在通过值获取枚举成员时,只能获取到第一个成员
如果要限制定义枚举时,不能定义相同值的成员。可以使用装饰器@unique【要导入unique模块】
2. 枚举取值(三条)
通过成员的名称来获取成员
通过成员值来获取成员
通过成员,来获取它的名称和值
总结:名称和值获取成员,反之亦然
3. 迭代器(三条)
枚举支持迭代器,可以遍历枚举成员
如果枚举有值重复的成员,循环遍历枚举时只获取值重复成员的第一个成员
如果想把值重复的成员也遍历出来,要用枚举的一个特殊属性__members__
from enum import Enum
class Color(Enum):
red = 1
orange = 2
yellow = 3
green = 4
blue = 5
indigo = 6
purple = 7
red_alias = 1
for color in Color.__members__.items():
print(color)
总结:可以遍历 值重复获取第一个 重复的遍历要用__members__
4. 枚举比较(三条)
枚举成员可进行同一性比较
枚举成员可进等值比较
枚举成员不能进行大小比较
总结:同一性 等值 不能大小比较