导读:本期聚焦于小伙伴创作的《Python中的枚举是什么 如何使用enum模块定义枚举》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《Python中的枚举是什么 如何使用enum模块定义枚举》有用,将其分享出去将是对创作者最好的鼓励。

枚举是Python中一种特殊的数据类型,用于定义一组相关的常量集合,每个常量都有唯一的名称和对应的值,常用来表示固定的、不可随意修改的取值集合,比如订单状态、性别类型、错误码等场景。使用枚举可以避免直接在代码中写硬编码的常量,让代码的可读性和可维护性都得到提升。

Python中的枚举是什么 如何使用enum模块定义枚举

枚举的基本概念

枚举的核心特点是成员固定、不可修改,每个枚举成员都有唯一的身份标识。在Python中,枚举通过enum模块实现,枚举类的每个实例就是枚举成员,不能直接修改成员的值,也不能随意新增成员,这保证了枚举取值的规范性。

比如我们需要表示一周的七天,不使用枚举时可能会用数字1到7代表,但是其他人看代码时很难直接知道1和7分别代表什么,使用枚举就可以明确每个取值的含义。

使用enum模块定义枚举

基础定义方式

最基础的枚举定义方式是继承enum.Enum类,然后直接定义类属性作为枚举成员,默认情况下枚举成员的值会从1开始自动递增。

from enum import Enum

# 定义星期枚举
class WeekDay(Enum):
    MONDAY = 1
    TUESDAY = 2
    WEDNESDAY = 3
    THURSDAY = 4
    FRIDAY = 5
    SATURDAY = 6
    SUNDAY = 7

# 访问枚举成员
print(WeekDay.MONDAY)  # 输出 WeekDay.MONDAY
print(WeekDay.MONDAY.value)  # 输出 1
print(WeekDay.MONDAY.name)  # 输出 MONDAY

自动赋值枚举

如果不想手动给每个枚举成员赋值,可以使用enum.auto()方法,它会自动为每个成员分配递增的整数值,从1开始。

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

自定义值的枚举

枚举成员的值不只能是整数,也可以是字符串、元组等其他类型,只需要给成员直接赋值对应的类型即可。

from enum import Enum

class OrderStatus(Enum):
    PENDING = "pending"  # 待支付
    PAID = "paid"  # 已支付
    SHIPPED = "shipped"  # 已发货
    FINISHED = "finished"  # 已完成

print(OrderStatus.PENDING.value)  # 输出 pending

带方法的枚举

枚举类也可以定义普通方法,方便对枚举成员做额外的逻辑处理,比如根据枚举值获取对应的描述信息。

from enum import Enum

class Gender(Enum):
    MALE = 1
    FEMALE = 2

    def get_desc(self):
        if self == Gender.MALE:
            return "男性"
        else:
            return "女性"

print(Gender.MALE.get_desc())  # 输出 男性
print(Gender.FEMALE.get_desc())  # 输出 女性

枚举的常见使用场景

  • 表示固定的状态集合,比如订单状态、用户状态等,避免使用魔法数字。
  • 定义类型标识,比如接口返回的错误码类型,每个错误码对应明确的含义。
  • 作为函数的参数限制,比如某个函数只接受特定的几个取值,可以用枚举来约束入参。

枚举的常用操作

除了访问成员的namevalue属性,枚举还支持遍历、通过值获取成员、通过名称获取成员等操作。

from enum import Enum

class Status(Enum):
    SUCCESS = 200
    ERROR = 500
    NOT_FOUND = 404

# 遍历所有枚举成员
for status in Status:
    print(status.name, status.value)

# 通过值获取枚举成员
print(Status(200))  # 输出 Status.SUCCESS

# 通过名称获取枚举成员
print(Status["SUCCESS"])  # 输出 Status.SUCCESS

需要注意的是,枚举成员是不可变的,不能修改已有成员的值,也不能给枚举类动态新增成员。如果尝试修改枚举成员的值,Python会直接抛出AttributeError错误。

Pythonenum模块枚举定义枚举使用修改时间:2026-07-07 12:42:10

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。