python 枚举类型
在python中枚举是一种类(Enum,IntEnum),存放在enum模块中。枚举类型可以给一组标签赋予一组特定的值。
枚举的特点:
- 枚举类中不能存在相同的标签名
- 枚举是可迭代的
- 不同的枚举标签可以对应相同的值,但它们都会被视为该值对应第一个标签的别名
- 如果要限制定义枚举时,不能定义相同值的成员。可以使用装饰器@unique【要导入unique模块】
- 枚举成员之间不能进行大小比较,可进行等值和同一性比较
- 枚举成员为单例,不可实例化,不可更改
在开始前,我们先定义一个枚举类:
from enum import Enum
class Vip(Enum):
MONDAY = 0
TUESDAY = 1
WEDNESDAY = 2
THURSDAY = 3
FRIDAY = 4
SATURDAY = 5
SUNDAY = 6
示例一:获取在枚举类中定义的枚举成员
# 方法一:
print(Vip.MONDAY)
print(type(Vip.MONDAY))
# 方法二
print(Vip['TUESDAY'])
print(type(Vip.TUESDAY))
# 方法三
print(Vip(2))
print(type(Vip(2))) -------------------
Vip.MONDAY
<enum 'Vip'>
Vip.TUESDAY
<enum 'Vip'>
Vip.WEDNESDAY
<enum 'Vip'>
示例二:枚举成员中包含标签名和该标签对应的值
today = Vip.FRIDAY
print('Today is ' + today.name + '. The number of today is ' + str(today.value)) ----------------------------------------
Today is FRIDAY. The number of today is 4
示例三:包含相同值的枚举类的迭代,默认情况下不会输出别名,但可通过迭代__members__来显示所有成员标签
from enum import Enum
class Week(Enum):
MONDAY = 0
TUESDAY = 1
FRIDAY = 4
TODAY = 4 # 以FRIDAY别名的形式存在
for day in Week:
print(day)
print('******************')
for day in Week.__members__:
print(day) ----------------------
Week.MONDAY
Week.TUESDAY
Week.FRIDAY
******************
MONDAY
TUESDAY
FRIDAY
TODAY
示例四:限定不含相同值的枚举类@unique
from enum import Enum, unique
@unique
class Week(Enum):
MONDAY = 0
TUESDAY = 1
FRIDAY = 4
TODAY = 4 --------------------------------------
ValueError: duplicate values found in <enum 'Week'>: TODAY -> FRIDAY
python 枚举类型的更多相关文章
- 人生苦短之Python枚举类型enum
枚举类型enum是比较重要的一个数据类型,它是一种数据类型而不是数据结构,我们通常将一组常用的常数声明成枚举类型方便后续的使用.当一个变量有几种可能的取值的时候,我们将它定义为枚举类型.在Python ...
- python枚举类型
笔记: 一:枚举类型的定义二:枚举类和普通类的区别 1:值不可变 2:具有防止相同标签得功能,不同标签的值可以相同! 三:枚举类型.枚举值.枚举名称 1:VIP.YELLOW.Value 获得标签的值 ...
- python枚举类型 Enum
在python中枚举是一种类(Enum) 枚举类中不能存在相同的标签名 枚举是可迭代的 例: from enum import Enum class Vip(Enum): MONDAY = 0 TUE ...
- Python 中的枚举类型~转
Python 中的枚举类型 摘要: 枚举类型可以看作是一种标签或是一系列常量的集合,通常用于表示某些特定的有限集合,例如星期.月份.状态等. 枚举类型可以看作是一种标签或是一系列常量的集合,通常用于表 ...
- Python中模拟enum枚举类型的5种方法分享
这篇文章主要介绍了Python中模拟enum枚举类型的5种方法分享,本文直接给出实现代码,需要的朋友可以参考下 以下几种方法来模拟enum:(感觉方法一简单实用) 复制代码代码如下: # way1 ...
- 别再说Python没有枚举类型了,好好看看
枚举类型可以看作是一种标签或是一系列常量的集合,通常用于表示某些特定的有限集合,例如星期.月份.状态等. Python 的原生类型(Built-in types)里并没有专门的枚举类型,但是我们可以通 ...
- Python 的枚举类型
起步 Python 中的枚举类型 Python 的原生类型中并不包含枚举类型.为了提供更好的解决方案,Python 通过 PEP 435 在 3.4 版本中添加了 enum 标准库. 枚举类型可以看作 ...
- Python面向对象-枚举类型enum
枚举类型:在实际问题中,有些变量的值被限定在一个有限的范围内.例如:一个星期有且只有7天,一年有且只有十二个月,一个班每周有6门课程等等.如果把这些量说明为整型.字符串或者其他类型显然是不合适.编程界 ...
- PyQt(Python+Qt)学习随笔:Model中项的标记flags取值及枚举类型Qt.ItemFlag
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 在Model中的项可以通过flags()方法查询对应项是否能被选择.拖拽或其他操作,对应的返回值类型 ...
随机推荐
- H3C PPP会话流程
- 【codeforces 764B】Timofey and cubes
time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...
- java 泛型的嵌套(map例子)
package july7; //泛型加Map的输出! import java.util.Iterator; import java.util.Map; import java.util.Map.En ...
- P1051 八皇后问题
题目描述 在国际象棋中,皇后是同时具备象和车的攻击范围的,它可以横竖移动,也可以斜着移动.那么在一个8*8的标准国际象棋棋盘中,我们要放入8个皇后,同时皇后之间无法互相攻击,问有多少种皇后的放置方法. ...
- H3C配置文件的显示与维护
- H3C配置热键--hotkey---系统视图
Hotkey作用 hotkey 命令用来为某一快捷键指定相应的命令行. undo hotkey 命令用来恢复系统的默认值. —————————————————————————————————————— ...
- 备战省赛组队训练赛第七场(UPC)
传送门 日文题解:戳这里
- excel转换成实体
package com.cinc.ecmp.utils; import java.io.IOException; import java.io.InputStream; import java.lan ...
- Nutch网页抓取速度优化
Nutch网页抓取速度优化 Here are the things that could potentially slow down fetching 1) DNS setup 2) The numb ...
- Android studio 使用git仓库记录
studio 绑定git settings --> verson control -->git 在项目文件目录右击打开git bash here操作界面 查看git项目安装位置 找到id_ ...