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

如何移除枚举(Enum)名称中的下划线?解决递归错误问题

修复枚举名称去下划线的递归错误问题

问题出在你重写name属性时,方法内部调用self.name会触发该property的递归调用,导致无限循环报错。

直接访问Enum实例存储原始名称的_name_属性就能解决这个问题,修改后的代码如下:

from enum import Enum

class A(Enum):
    ABC = '0'
    OTC = '1'
    _1T = '2'

    @property
    def name(self) -> str:
        return self._name_.replace('_', '')

测试验证:

  • 调用A._1T.name会返回1T,成功移除了下划线
  • 调用A.ABC.name返回ABC,不受影响

也可以通过super()获取父类的name属性来实现,效果一致:

@property
def name(self) -> str:
    return super().name.replace('_', '')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 07:29:52