1 enum 模块介绍
枚举(enumeration)在许多编程语言中常被表示为一种基础的数据结构使用,枚举帮助组织一系列密切相关的成员到同一个群组机制下,一般各种离散的属性都可以用枚举的数据结构定义,比如颜色、季节、国家、时间单位等
enum规定了一个有限集合的属性,限定只能使用集合内的值,明确地声明了哪些值是合法值,,如果输入不合法的值会引发错误,只要是想要从一个限定集合取值使用的方式就可以使用enum来组织值
2 示例
2.1 若不使用 enum 模块
以前 python 没有内置的枚举方法, 起初实现枚举属性的方法:
# 创建模仿枚举的类
class Gangzhou:
location = 'seaside'
population = 'X billions'
economics = 'One of the best'
nigs = 'countless'
# 使用成员
location = Gangzhou.location
nigs = Gangzhou.nigs
# 检查成员
print(location)
print(nigs)
print("location 的类型:", type(Gangzhou.location))
print(isinstance(Gangzhou.location, Gangzhou))
>>> seaside
>>> countless
>>> location 的类型: <class 'str'>
>>> False
可以看出, Gangzhou.location 的类型并不是 Gangzhou ,而是 str
2.2 使用 enum 模块
from enum import Enum
# 创建模仿枚举的类
class Gangzhou(Enum):
location = 'seaside'
population = 'X billions'
economics = 'One of the best'
nigs = 'countless'
# 使用成员
location = Gangzhou.location
nigs = Gangzhou.nigs
# 检查成员
print(location)
print(nigs)
print(Gangzhou.location.name)
print(Gangzhou.location.value)
print("location 的类型:", type(Gangzhou.location))
print(isinstance(Gangzhou.location, Gangzhou))
>>> Gangzhou.location
>>> Gangzhou.nigs
>>> location
>>> seaside
>>> location 的类型: <enum 'Gangzhou'>
>>> True