前言
意思同java中的枚举,但是用法需要熟悉一下
怎么定义python中的枚举?
不知道怎么说,为了缓解尴尬,直接看示例
from enum import Enum
#获得一个枚举类,执行完之后,Month就是一个枚举类
Month=Enum('Month',('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'))
那么既然我们得到了枚举类Month,我们就可以在函数传值时直接传入了,这是一个比较简单的定义方法
枚举类名=Enum('枚举名',(元素名))`枚举名可以任意`
我们来看一下实际示例
遍历枚举的示例
直接获取枚举中元素的示例
我们发现,value这个是一个int类型的,准确的说法是
value属性是自动赋给枚举成员的int类型的常量,默认是从1开始计数
如果我们需要更精确地去控制枚举类型,可以从Enum派生出自定义类
from enum import Enum,unique
@unique
class Weekday(Enum):
Sun=0
Mon=1
Tue=2
Wed=3
Thu=4
Fri=5
Sat=6
@unique装饰器 可以帮助我们检查保证没有重复值
访问这些枚举类型可以有若干种方法
以上面的weekday枚举为例,一一列举一下
print(Weekday.Mon)
print(Weekday['Tue'])
print(Weekday(0))
print(Weekday.Tue.value)
再看一个将枚举当参数传入的实例
把Student的gender属性改造为枚举类型,可以避免使用字符串
总结
看一样应该就记住了吧~
网友评论