枚举类型可以看作是一种标签或是一系列常量的集合,通常用于表示某些特定的有限集合,例如星期、月份、状态等。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))