python:枚举类型

喜夏-厌秋 提交于 2019-12-02 23:32:52

1、什么是枚举类型?

  枚举类型可以看做是一系列常量的集合,通常用于表示某些有限且固定的集合,例如月份(一年有12个月)、星期(一星期有七天)、季节(一年四个季节)等。

2、枚举的定义

  • 定义枚举首先要导入enum模块
  • 定义枚举使用class关键字,继承Enum类

  示例代码:

from enum import Enum

class Direction(Enum):
    west = "东"
    east = "西"
    south = "南"
    north = "北"

  上面的代码,我们定义了方向的枚举Direction,枚举中有4个成员,每个成员都有他们自己的名称和值,打印Direction的类型如下:

 注意:

  • 定义成员时,成员名字不可重复
  • 默认情况下,不同成员的值允许相同,但若有两个相同值的成员,第二个成员的名称将被视为第一个成员的别名
  • 在存在两个相同值的成员时,通过值来获取枚举成员将只能获取到第一个成员
  • 在定义枚举时,如果要限定不能定义相同值的成员,可以使用装饰器@unique(需要导入unique方法),这时候再定义值相同的成员将会报错

 

3、枚举取值

  •  通过成员名称来获取成员
print(Direction["south"])
print(Direction.south)
  •  通过成员值来获取成员
print(Direction("南"))
  • 通过成员来获取他的名称和值
direction = Direction.west
print(direction.name)
print(direction.value)

 

 4、枚举迭代器

  • 枚举支持迭代器,可遍历枚举成员
for i in Direction:
    print(i)

 

  •  如果有枚举值重复的成员,遍历时只获取它们中的第一个
class Direction(Enum):
    west = "东"
    east = "西"
    south = "南"
    north = "北"
    north2 = "北"


for i in Direction:
    print(i)

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!