# coding=utf-8
from enum import Enum, unique
# 1.
Month = Enum('Month', ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'))
for name, member in Month.__members__.items( ):
# value属性则是自动赋给成员的int常量,默认从1开始计数
print(name, '=>', member, ',', member.value)
"""
Jan => Month.Jan , 1
Feb => Month.Feb , 2
Mar => Month.Mar , 3
Apr => Month.Apr , 4
May => Month.May , 5
Jun => Month.Jun , 6
Jul => Month.Jul , 7
Aug => Month.Aug , 8
Sep => Month.Sep , 9
Oct => Month.Oct , 10
Nov => Month.Nov , 11
Dec => Month.Dec , 12
"""
# 2.
Weekday = Enum('Weekday', ('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'))
for name, member in Weekday.__members__.items( ):
# value属性则是自动赋给成员的int常量,默认从1开始计数
print(name, '=>', member, ',', member.value)
"""
Sun => Weekday.Sun , 1
Mon => Weekday.Mon , 2
Tue => Weekday.Tue , 3
Wed => Weekday.Wed , 4
Thu => Weekday.Thu , 5
Fri => Weekday.Fri , 6
Sat => Weekday.Sat , 7
"""
# 3.自定义类
@unique
class Weekday(Enum):
Sun = 0 # Sun的value被设定为0
Mon = 1
Tue = 2
Wed = 3
Thu = 4
Fri = 5
Sat = 6
for name, member in Weekday.__members__.items( ):
print(name, '=>', member, ',', member.value)
"""
Sun => Weekday.Sun , 0
Mon => Weekday.Mon , 1
Tue => Weekday.Tue , 2
Wed => Weekday.Wed , 3
Thu => Weekday.Thu , 4
Fri => Weekday.Fri , 5
Sat => Weekday.Sat , 6
"""
# 4.把Student的gender属性改造为枚举类型,可以避免使用字符串
class Gender(Enum):
Male = 0
Female = 1
class Student(object):
def __init__(self, name, gender):
self.name = name
self.gender = gender
bart = Student('Bart', Gender.Male)
if bart.gender == Gender.Male:
print(type(bart.gender))
print(type(Gender.Male))
print('测试通过!')
"""
<enum 'Gender'>
<enum 'Gender'>
测试通过!
"""
else:
print(type(bart.gender))
print(type(Gender.Male))
print('测试失败!')
使用枚举类
最新推荐文章于 2022-08-08 22:30:30 发布