设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 数据 手机
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

Python枚举类定义和运用

发布时间:2022-07-06 11:53 所属栏目:51 来源:互联网
导读:一些具有特殊含义的类,其实例化对象的个数往往是固定的,比如用一个类表示月份,则该类的实例对象最多有 12 个;再比如用一个类表示季节,则该类的实例化对象最多有 4 个。 针对这种特殊的类,Python 3.4 中新增加了 Enum 枚举类。也就是说,对于这些实例化
  一些具有特殊含义的类,其实例化对象的个数往往是固定的,比如用一个类表示月份,则该类的实例对象最多有 12 个;再比如用一个类表示季节,则该类的实例化对象最多有 4 个。
 
  针对这种特殊的类,Python 3.4 中新增加了 Enum 枚举类。也就是说,对于这些实例化对象个数固定的类,可以用枚举类来定义。
 
  例如,下面程序演示了如何定义一个枚举类:
  from enum import Enum
  class Color(Enum):
      # 为序列值指定value值
      red = 1
      green = 2
      blue = 3
  如果想将一个类定义为枚举类,只需要令其继承自 enum 模块中的 Enum 类即可。例如在上面程序中,Color 类继承自 Enum 类,则证明这是一个枚举类。
 
  在 Color 枚举类中,red、green、blue 都是该类的成员(可以理解为是类变量)。注意,枚举类的每个成员都由 2 部分组成,分别为 name 和 value,其中 name 属性值为该枚举值的变量名(如 red),value 代表该枚举值的序号(序号通常从 1 开始)。
 
  值得一提的是,Python 枚举类中各个成员必须保证 name 互不相同,但 value 可以相同,举个例子:
  from enum import Enum
  class Color(Enum):
      # 为序列值指定value值
      red = 1
      green = 1
      blue = 3
  print(Color['green'])
 
  除了通过继承 Enum 类的方法创建枚举类,还可以使用 Enum() 函数创建枚举类。例如:
  from enum import Enum
  #创建一个枚举类
  Color = Enum("Color",('red','green','blue'))
  #调用枚举成员的 3 种方式
  print(Color.red)
  print(Color['red'])
  print(Color(1))
  #调取枚举成员中的 value 和 name
  print(Color.red.value)
  print(Color.red.name)
  #遍历枚举类中所有成员的 2 种方式
  for color in Color:
      print(color)
  Enum() 函数可接受 2 个参数,第一个用于指定枚举类的类名,第二个参数用于指定枚举类中的多个成员。

(编辑:ASP站长网)

    网友评论
    推荐文章
      热点阅读