枚举类型可以看作是一种标签或是一系列常量的集合,通常用于表示某些特定的有限集合,例如星期、月份、状态等。Python 的原生类型(Built-in types)里并没有专门的枚举类型,但是我们可以通过很多方法来实现它,例如字典、类等。

Python提供了内置的enumerate函数,可以把各种迭代器包装成生成器,以便稍后产生输出值,这个生成器每次产生一对输出值,前一个是循环下标,后一个是从迭代器获取到的下一个序列元素。它的作用是允许我们遍历迭代器并自动计数。

定义

  1. 首先,定义枚举要导入enum模块。
  2. 枚举定义用class关键字,继承Enum类。
  3. 用于定义枚举的class和定义类的class是有区别【下一篇博文继续分享】。

  示例代码:

from enum import Enum

class Color(Enum):
    red = 1
    orange = 2
    yellow = 3
    green = 4
    blue = 5
    indigo = 6
    purple = 7

  代码分析:

  1. 上面的代码,定义了颜色的枚举Color.
  2. 颜色枚举有7个成员,分别是Color.red、Color.orange、Color.yellow等。
  3. 每一个成员都有它们各自名称和值,Color.red成员的名称是:red,值是:1。
  4. 每个成员的数据类型就是它所属的枚举。【*注:用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))