对于枚举没有它,我们的程序照样可以编写,比如用静态变量代替,但为了让程序可读性、可编写性更好,基本上各种语言都会支持枚举。好处具体来说是: 规范了参数的形式,可以不用考虑类型的不匹配,并且显示的替代了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作为传入的参数