枚举.py精简版

本文主要从枚举的相关定义,取值,迭代器,比较四方面讲解

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. 枚举比较(三条)

枚举成员可进行同一性比较

枚举成员可进等值比较

枚举成员不能进行大小比较

总结:同一性   等值  不能大小比较

猜你喜欢

转载自blog.csdn.net/hsy_666/article/details/80458467