美文网首页
python学习笔记-tip43(枚举)

python学习笔记-tip43(枚举)

作者: 黑键手记 | 来源:发表于2018-09-27 09:59 被阅读19次

    前言

    意思同java中的枚举,但是用法需要熟悉一下

    怎么定义python中的枚举?

    不知道怎么说,为了缓解尴尬,直接看示例

      from enum import Enum
     #获得一个枚举类,执行完之后,Month就是一个枚举类
      Month=Enum('Month',('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'))
    

    那么既然我们得到了枚举类Month,我们就可以在函数传值时直接传入了,这是一个比较简单的定义方法

      枚举类名=Enum('枚举名',(元素名))`枚举名可以任意`
    

    我们来看一下实际示例

    遍历枚举的示例

    直接获取枚举中元素的示例


    我们发现,value这个是一个int类型的,准确的说法是
    value属性是自动赋给枚举成员的int类型的常量,默认是从1开始计数

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

      from  enum import Enum,unique
      @unique
      class Weekday(Enum):
              Sun=0
              Mon=1
              Tue=2
              Wed=3
              Thu=4
              Fri=5
              Sat=6
    

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

    访问这些枚举类型可以有若干种方法

    以上面的weekday枚举为例,一一列举一下

          print(Weekday.Mon)
          print(Weekday['Tue'])
          print(Weekday(0))
          print(Weekday.Tue.value)
    

    再看一个将枚举当参数传入的实例
    把Student的gender属性改造为枚举类型,可以避免使用字符串


    总结

    看一样应该就记住了吧~

    相关文章

      网友评论

          本文标题:python学习笔记-tip43(枚举)

          本文链接:https://www.haomeiwen.com/subject/pobsoftx.html