枚举是一组符号名称(枚举成员)的集合,枚举成员应该是唯一的、不可变的。在枚举中,可以对成员进行恒等比较,并且枚举本身是可迭代的。
此模块定义了四个枚举类,它们可被用来定义名称和值的不重复集合: Enum, IntEnum, Flag 和 IntFlag。 此外还定义了一个装饰器 unique() 和一个辅助类 auto。
用于创建枚举型常数的基类。 请参阅 Functional API 小节了解另一种替代性的构建语法。
用于创建同时也是 int 的子类的枚举型常数的基类。
此基类用于创建枚举常量 可使用按位运算符进行组合而不会丢失其 Flag 成员资格的枚举常量。
创建一个 Enum
from enum import Enum class VIP(Enum): YELLOW = 1 GREEN = 2 BLACK = 3 RED = 4 print(VIP.YELLOW) # 获取枚举的值 print(VIP.YELLOW.value) #获取标签的名字 print(VIP.YELLOW.name)
第二种创建Enum
import enum #定义枚举类 Season = enum.Enum('Season', ('SPRING', 'SUMMER', 'FALL', 'WINTER')) #直接访问指定枚举对象 print(Season.SPRING) #访问枚举成员的变量名 print(Season.SPRING.name) #访问枚举成员的值 print(Season.SPRING.value)
上面程序使用 Enum() 函数(就是 Enum 的构造方法)来创建枚举类,该构造方法的第一个参数是枚举类的类名;第二个参数是一个元组,用于列出所有枚举值。
unique枚举值不能重复
from enum import Enum, unique @unique class VIP(Enum): YELLOW = 1 GREEN = 2 BLACK = 3 RED = 4 REDS = 4
以上代码会报错,因为有重复的值
Python 还为枚举提供了一个 __members__ 属性,该属性返回一个 dict 字典,字典包含了该枚举的所有枚举实例。程序可通过遍历 __members__ 属性来访问枚举的所有实例。例如如下代码:
for key, value in VIP.__members__.items(): print(key, '---->', value, '值是---->', value.value)
发表评论
侧栏公告
寄语
譬如朝露博客是一个分享前端知识的网站,联系方式11523518。
热评文章
标签列表
热门文章
友情链接