欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python枚举类(8)

程序员文章站 2022-06-16 10:06:34
...

为了便于定义一些枚举类型的常量,比如月份,周数等等,使用枚举类比较合适。

from enum import Enum, unique

# 默认枚举值从1开始自增,每个常量('Jan',...)都是class Month的唯一实例
Month = Enum('Month', ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'))

print(Month.Jan.value)
for item in Month:
     # Month.JAN 1
     print(item, item.value)


# 自定义枚举值,
# @unique装饰器可以检测重复值,如果有重复值会抛出异常ValueError: duplicate values found in...
@unique
class Weekday(Enum):
    Sun = 0
    Mon = 1
    Tue = 2
    Wed = 3
    Thu = 4
    Fri = 5
    Sat = 6
  
    
# 不同取值方式
sun1 = Weekday.Sun
sun2 = Weekday['Sun']
# 唯一实例,所以为True
print(sun1 == sun2)