python之枚举(Enum)类

在 Python 中,枚举(Enum)是一种特殊的类,用于定义一组命名的常量。枚举类可以提高代码的可读性和可维护性,特别是在需要一组固定常量的情况下。Python 提供了 enum 模块来支持枚举类。

定义枚举类

要定义一个枚举类,可以使用 enum 模块中的 Enum 基类。以下是一个简单的示例:

python 复制代码
from enum import Enum

class Color(Enum):
    RED = 1
    GREEN = 2
    BLUE = 3

# 访问枚举成员
print(Color.RED)        # 输出: Color.RED
print(Color.GREEN)      # 输出: Color.GREEN
print(Color.BLUE)       # 输出: Color.BLUE

# 访问枚举成员的名称和值
print(Color.RED.name)   # 输出: RED
print(Color.RED.value)  # 输出: 1

# 枚举成员的比较
print(Color.RED == Color.RED)    # 输出: True
print(Color.RED == Color.GREEN)  # 输出: False

# 枚举成员的遍历
for color in Color:
    print(color)
# 输出:
# Color.RED
# Color.GREEN
# Color.BLUE

枚举类的其他用法

自动赋值

可以使用 auto() 函数自动为枚举成员赋值:

python 复制代码
from enum import Enum, auto

class Color(Enum):
    RED = auto()
    GREEN = auto()
    BLUE = auto()

# 访问枚举成员的值
print(Color.RED.value)   # 输出: 1
print(Color.GREEN.value) # 输出: 2
print(Color.BLUE.value)  # 输出: 3
枚举成员的别名

可以为枚举成员定义别名:

python 复制代码
from enum import Enum

class Color(Enum):
    RED = 1
    GREEN = 2
    BLUE = 3
    CYAN = 3  # CYAN 是 BLUE 的别名

# 访问枚举成员
print(Color.BLUE)  # 输出: Color.BLUE
print(Color.CYAN)  # 输出: Color.BLUE

# 枚举成员的比较
print(Color.BLUE == Color.CYAN)  # 输出: True
枚举类的继承

枚举类不能被继承,但可以通过组合来扩展枚举类:

python 复制代码
from enum import Enum

class PrimaryColor(Enum):
    RED = 1
    GREEN = 2
    BLUE = 3

class ExtendedColor(Enum):
    CYAN = 4
    MAGENTA = 5
    YELLOW = 6

# 访问枚举成员
print(PrimaryColor.RED)       # 输出: PrimaryColor.RED
print(ExtendedColor.CYAN)     # 输出: ExtendedColor.CYAN
相关推荐
这里有鱼汤15 分钟前
95%开发者未充分利用的Python特性:解包操作性能实测与最佳实践
python
这里有鱼汤16 分钟前
🎨 Matplotlib十大高级绘图技巧,学会了升职加薪(不骗你)
后端·python
令狐少侠201119 分钟前
python后端程序部署到服务器 Ubuntu并配合 Vue 前端页面运行
服务器·前端·python
Anarkh_Lee38 分钟前
Python 项目环境配置与 Vanna 安装避坑指南 (PyCharm + venv)
人工智能·python·pycharm
付出不多1 小时前
python函数与模块
开发语言·python
樱花穿过千岛湖1 小时前
第一章:Model Context Protocol (MCP)
网络·人工智能·python·网络协议·学习·tcp/ip
wolf犭良1 小时前
37、aiomysql实操习题
开发语言·python·算法
正经码农3 小时前
字典与集合——测试界的黑话宝典与BUG追捕术
python
nuclear20117 小时前
Python 从PPT文档中提取图片和图片信息(坐标、宽度和高度等)
python·powerpoint·ppt图片提取·提取ppt背景图片·提取pp所有图片
樱花穿过千岛湖8 小时前
第六章:Multi-Backend Configuration
人工智能·python·gpt·学习·ai