python从零开始--34 枚举

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


猜你喜欢

转载自blog.csdn.net/pansc2004/article/details/80433637