打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Python之枚举类型

1 简介

枚举是在 Python3.4 添加的新功能。Python3.4 之前的版本可以使用,但是不能直接使用,使用之前需要先用 pip install enum 安装。

1.1什么是枚举?

枚举可看作是一系列符号名称的集合,集合中每一个元素要保证唯一性和不可变,因此我们可以对枚举中元素进行恒等比较,通俗来讲枚举就是一系列常量的集合,枚举是可迭代的。

1.2枚举有什么作用?

枚举具有不可变的特性,所以枚举的主要作用就是用来定义常量的。

2 使用

2.1 创建

枚举语法与 class 语法相同:枚举的定义可以通过继承 Enum 的方式来实现, 看一下示例:

from enum import Enumclass WeekDay(Enum): Mon = 0 Tue = 1 Wed = 2 Thu = 3 Fri = 4

2.2 访问

枚举成员及属性的访问如下所示:

# 枚举成员print(WeekDay.Mon)# 枚举成员名称print(WeekDay.Mon.name)# 枚举成员值print(WeekDay.Mon.value)  

枚举的迭代也很简单,如下所示:

# 方式 1for day in WeekDay: # 枚举成员 print(day) # 枚举成员名称 print(day.name) # 枚举成员值 print(day.value)# 方式 2print(list(WeekDay))

2.3 比较

枚举成员及属性可以使用 is 进行对象比较,还可以使用 == 进行值比较,看下示例:

print(WeekDay.Mon is WeekDay.Thu)print(WeekDay.Mon == WeekDay.Mon)print(WeekDay.Mon.name == WeekDay.Mon.name)print(WeekDay.Mon.value == WeekDay.Mon.value)

枚举成员不能进行大小比较,如下所示:

>>> WeekDay.Mon < WeekDay.ThuTypeError: '<' not supported between instances of 'WeekDay' and 'WeekDay'

2.4 确保枚举值唯一

我们定义枚举时,成员名称是不可以重复的,但成员值是可以重复的,如果想要保证成员值不可重复,可以通过装饰器 @unique 来实现,如下所示:

 from enum import Enum, unique@uniqueclass WeekDay(Enum):    Mon = 0    ...
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
python中的枚举类和元类
Swift 枚举
Python3学习 -枚举类型_
c语言枚举
C语言枚举类型
C语言enum枚举类型解析
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服