枚举类型可以看作是一种标签或是一系列常量的集合,通常用于表示某些特定的有限集合,例如星期、月份、状态等。Python 的原生类型(Built-in types)里并没有专门的枚举类型,但是我们可以通过很多方法来实现它,例如字典、类等。
Python提供了内置的enumerate函数,可以把各种迭代器包装成生成器,以便稍后产生输出值,这个生成器每次产生一对输出值,前一个是循环下标,后一个是从迭代器获取到的下一个序列元素。它的作用是允许我们遍历迭代器并自动计数。
定义
- 首先,定义枚举要导入enum模块。
- 枚举定义用class关键字,继承Enum类。
- 用于定义枚举的class和定义类的class是有区别【下一篇博文继续分享】。
示例代码:
from enum import Enum
class Color(Enum): red = 1 orange = 2 yellow = 3 green = 4 blue = 5 indigo = 6 purple = 7
代码分析:
- 上面的代码,定义了颜色的枚举Color.
- 颜色枚举有7个成员,分别是Color.red、Color.orange、Color.yellow等。
- 每一个成员都有它们各自名称和值,Color.red成员的名称是:red,值是:1。
- 每个成员的数据类型就是它所属的枚举。【*注:用class定义的类,实际上就是一种类型】
from enum import Enum,unique @unique class color(Enum): ''' 对于一些既定的值 不允许随意赋值的量 每个成员的数据类型就是它所属的枚举 自定义的类/枚举 又叫自定义数据类型 ''' red=1 red_reia=11 orange=2 yellow=3 green=4 blue=5 indigo=6 purple=7 #根据枚举的值 获取枚举的名字 print(color(1)) print(color['orange'].value) #创建 生成一个枚举数据 co=color['purple'] print('枚举数据名字',co.name) print('枚举数据的值',co.value) for c in color: print(c,end='') print() print(color.red==color.red_reia) print(color.red is color.red_reia) print(color.red is not color.blue) print(color.red.value<color.blue.value) print(type(color.red.value))