本文摘自php中文网,作者不言,侵删。
本篇文章给大家带来的内容是关于Python中枚举类型的详解(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。Python 的原生类型中并不包含枚举类型。为了提供更好的解决方案,Python 通过 PEP 435 在 3.4 版本中添加了 enum 标准库。
枚举类型可以看作是一种标签或是一系列常量的集合,通常用于表示某些特定的有限集合,例如星期、月份、状态等。在没有专门提供枚举类型的时候我们是怎么做呢,一般就通过字典或类来实现:
1 2 3 4 5 6 7 8 9 | Color = {
'RED' : 1,
'GREEN' : 2,
'BLUE' : 3,
}
class Color:
RED = 1
GREEN = 2
BLUE = 3
|
这种来实现枚举如果小心翼翼地使用当然没什么问题,毕竟是一种妥协的解决方案。它的隐患在于可以被修改。
使用 Enum
更好的方式是使用标准库提供的 Enum
类型,官方库值得信赖。3.4 之前的版本也可以通过 pip install enum
下载支持的库。简单的示例:
1 2 3 4 5 | from enum import Enum
class Color(Enum):
red = 1
green = 2
blue = 3
|
枚举成员有值(默认可重复),枚举成员具有友好的字符串表示:
1 2 3 4 5 6 7 8 | >>> print (Color.red)
Color.red
>>> print (repr(Color.red))
<Color.red: 1>
>>> type(Color.red)
<Enum 'Color' >
>>> isinstance(Color.green, Color)
True
|
枚举类型不可实例化,不可更改。
定义枚举
定义枚举时,成员名不允许重复
1 2 3 4 | class Color(Enum):
red = 1
green = 2
red = 3 # TypeError: Attempted to reuse key: 'red'
|
成员值允许相同,第二个成员的名称被视作第一个成员的别名
1 2 3 4 5 6 7 8 9 | class Color(Enum):
red = 1
green = 2
blue = 1
print (Color.red) # Color.red
print (Color.blue) # Color.red
print (Color.red is Color.blue)# True
print (Color(1)) # Color.red 在通过值获取枚举成员时,只能获取到第一个成员
|
若要不能定义相同的成员值,可以通过 unique 装饰
阅读剩余部分
相关阅读 >>
Python实现自动刷博客浏览量经验分享
pandas 最详细教程
Python语言有哪些数据类型
Python中字符串数组如何逆序排列
怎么把pycharm卸载干净
2018年最火的七个Python图形化gui开发框架
Python如何批量读取图片
Python元祖与字典以及集合的实例讲解
Python ord()是什么?ord()有什么用?
Python如何遍历list
更多相关阅读请进入《Python》频道 >>
人民邮电出版社
python入门书籍,非常畅销,超高好评,python官方公认好书。
转载请注明出处:木庄网络博客 » Python中枚举类型的详解(代码示例)