python学习笔记-tip43(枚举)

前言

意思同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(枚举))