对于枚举没有它,我们的程序照样可以编写,比如用静态变量代替,但为了让程序可读性、可编写性更好,基本上各种语言都会支持枚举。好处具体来说是: 规范了参数的形式,可以不用考虑类型的不匹配,并且显示的替代了int型参数带来的概念模糊;可以控制重复;可以避免被修改。这段话,我照抄的,我还是来举例吧:
from enum import Enum, unique # 从enum模块输入Enum, intEnum ,unique等类和装饰器
@unique # 用这个装饰器后,能确保枚举成员独一无二
class Month(Enum):
Jan=1
Feb=2
Mar=3
Apr=4
May=5
Jun=6
Jul=7
Aug=8
Sep=9
Oct=10
Nov=11
Dec=12
class Child(object):
def grow_time(self, month):
if month in [Month.Mar, Month.Apr, Month.May]: # 直接用有意义的月份作为参数,的确比用1, 2, 3这种数值容易理解,可读性好
return "长得最快"
elif month in [Month.Jul, Month.Aug, Month.Sep]:
return "长大快"
else:
return "长的慢"
if __name__ == "__main__":
for name, member in Month.__members__.items(): # 这个用来遍历一共enum类的成员
print(name, '=>', member, ',', member.value)
c = Child()
print(c.grow_time(Month.Sep)) # 使用enum作为传入的参数