zoukankan      html  css  js  c++  java
  • 6.5、使用枚举法

    from enum import Enum
    Month = Enum('Month', ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'))

    Enum类,每一个个常量都是唯一实例

    for name,member in Month.__members__.items():
        print(name,'=>',member,',',member.value)

     如果需要更精确地控制枚举类型,可以从Enum派生出自定义类:

    @unique装饰器可以帮助我们检查保证没有重复值。

    from enum import Enum,unique
    @unique
    class Weekday(Enum):
        Sun = 0 # Sun的value被设定为0
        Mon = 1
        Tue = 2
        Wed = 3
        Thu = 4
        Fri = 5
        Sat = 6

    from enum import Enum
    class Color(Enum):
        red=1
        green=2
        blue=3

    定义枚举时,成员名不允许重复

    成员值允许相同,第二个成员的名称被视作第一个成员的别名

    若要不能定义相同的成员值,可以通过 unique 装饰

    成员取值:

     每个成员都有名称属性和值属性:

     支持迭代的方式遍历成员,按定义的顺序,如果有值重复的成员,只获取重复的第一个成员:

    特殊属性 __members__ 是一个将名称映射到成员的有序字典,也可以通过它来完成遍历:

  • 相关阅读:
    mysql分表那些事
    java根据经纬度计算距离
    java Calendar类的使用
    mysql中DATETIME、DATE和TIMESTAMP的区别
    java设计模式
    dubbo教程
    Java算法
    随机产生字符串
    js根据类名获取元素的底层原理
    元素样式的获取
  • 原文地址:https://www.cnblogs.com/soberkkk/p/12637458.html
Copyright © 2011-2022 走看看