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

如何为Python枚举类设置未枚举值的默认返回值?

实现枚举类的未知值 fallback 逻辑

你可以通过重写枚举类的_missing_特殊方法来实现这个需求,这是Python枚举模块专门为处理未定义值场景提供的钩子方法。

修改后的代码如下:

import enum

class Version(enum.IntEnum):
    VERSION_1 = 1
    VERSION_2 = 2
    VERSION_UNKNOWN = 99

    @classmethod
    def _missing_(cls, value):
        # 当传入的值不在枚举成员中时,返回VERSION_UNKNOWN
        return cls.VERSION_UNKNOWN

测试你给出的代码:

e = Version(3)
assert e == Version.VERSION_UNKNOWN

这段代码现在可以正常运行,不会再抛出ValueError异常,而是直接返回VERSION_UNKNOWN成员。

注意:_missing_方法只会在通过值初始化枚举时触发,如果是通过名称(比如Version("VERSION_3"))传入不存在的内容,还是会抛出异常。如果需要处理这种场景,可以额外重写__getitem__或者__call__方法,但你的需求仅涉及值初始化,上面的方案已经足够。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 16:19:53