python枚举法例题及解题思路,python枚举是什么意思
枚举类型可以看作一个标签或者一组常量,通常用来表示一些特定的有限集,比如周、月、状态等。Python的内置类型中没有特殊的枚举类型,但是我们可以用很多方式实现它,比如字典和类:WEEKDAY={
MON: 1,
TUS:2,
文:3,
THU:4,
星期五:5
}
类别颜色:
红色=0
绿色=1
蓝色=2
以上两种方法可以看作是简单枚举类型的实现。如果这样的枚举变量只在本地使用,没有问题,但问题是它们是可变的,也就是可以在其他地方修改,影响正常使用:WEEKDAY[MON]=WEEKDAY[FRI]
打印(工作日)
{ 星期五:5, TUS: 2,星期一:5,文:3, THU: 4}
类定义的枚举甚至可以实例化,变得不伦不类:
c=颜色()
印刷(红色)
颜色。红色=2
印刷(红色)
0
2
当然也可以使用不可变类型,比如元组,但是这样就失去了枚举类型的初衷,标签就退化成了无意义的变量:COLOR=(R , G , B )
打印(颜色[0],颜色[1],颜色[2])
R G B
为了提供更好的解决方案,Python通过PEP 435在3.4版本中增加了enum标准库,3.4之前的版本也可以通过pip install enum下载兼容的支持库。Enum提供了三个工具:Enum/IntEnum/unique,用法也很简单。可以通过继承Enum/IntEnum来定义枚举类型,其中IntEnum定义枚举成员必须是(或者可以转换成)整数类型,unique方法可以作为修饰符定义枚举成员的值不能重复:from enum import enum,IntEnum,unique。
尝试:
@唯一
班级工作日(枚举):
MON=1
TUS=2
文=3
THU=4
FRI=1
除了值错误为e:
打印(e)
在以下位置发现重复值:星期五至星期一
尝试:
类别颜色(内部):
红色=0
绿色=1
BLUE=b
除了值错误为e:
打印(e)
基数为10的int()的文本无效:“b”
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。