简介:
当我们需要定义一些特定有限数量的常量、标签、类型等的时候,最佳方式就是使用枚举。枚举一般用于表示某些特定的有限集合。例如月份、季节、星期等。
本篇主要介绍python2.7中的枚举类。即enum中的Enum类。python3.4开始有内置枚举类,在python2.7中需要指定enum34安装。
enum中有Enum和IntEnum两个枚举class。IntEnum的最大特性就是指定枚举值只能是int类型。
安装:
pip install enum34
# 注意这里是enum34,会安装和python3.4中相同的枚举类
# 如果直接执行pip install enum,会安装另外一个enum模块,也支持枚举,但是功能较少。
用法 定义:
from enum
import Enum
, unique
class ColorEnum(Enum
):
RED
= "red"
GREEN
= "green"
BLUE
= "blue"
取值
print ColorEnum
.RED
print ColoeEnum
.RED
.value
print ColorEnum
.RED
.names
使用
内置属性
print ColorEnum
._member_names_
print ColorEnum
._value2member_map_
print ColorEnum
.__members__
.items
()
遍历
for v
in ColorEnum
:
print v
.name
print v
.value
比较
print ColorEnum
.RED
== ColorEnum
.GREEN
print ColorEnum
.RED
is EnumColor
.PINK
特性:
可以遍历可以用 == 或者 is 比较获取全部枚举变量 参照上边语法获取全部枚举变量和值。参照上面语法装饰器unique可以决定是否能有重复值。(实际上重复枚举值无意义,后面重复值是前面枚举变量的别名,引用时只会指向第一个)