You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python的enum.Enum中使用数字等无效标识符作为成员名?

Python 要求类属性名必须为合法标识符,不能纯由数字组成或以数字开头,因此无法直接通过类声明的方式定义这类成员名的枚举,有两种成熟的解决方案可选:

方案1:使用枚举的函数式声明语法(完全匹配你需要的数字键映射)

直接调用enum.Enum构造方法传入字典,键为你需要的数字字符串,值为对应的枚举值。这种方式定义的枚举支持通过下标直接取对应数字的枚举成员,完全匹配你的映射需求:

import enum

my_enum = enum.Enum('my_enum', {
    '0': 1,
    '1': 2,
    '2': 3,
    '3': 4
})

# 访问示例
print(my_enum['0'].value)  # 输出1
print(my_enum(1))  # 按值查找,输出 my_enum.0

方案2:给枚举成员起可读别名(更推荐,支持点语法访问)

如果不需要强制用数字作为成员名,仅需要保证枚举值和数据库定义对齐,可以给成员起合法的标识符别名,枚举值对应数据库的枚举字符串,代码可读性更高:

import enum

class MyEnum(enum.Enum):
    STATUS_0 = '0'
    STATUS_1 = '1'
    STATUS_2 = '2'
    STATUS_3 = '3'

# 访问示例
print(MyEnum.STATUS_0.value)  # 输出 '0',可直接传入数据库操作

两种方案都可以完美适配数据库的枚举类型映射,可根据自己的代码习惯选择。


内容的提问来源于stack exchange,提问作者Karen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 10:18:03