gpt4 book ai didi

python - 有没有办法为 python 枚举指定默认值?

转载 作者:太空宇宙 更新时间:2023-11-03 12:31:02 28 4
gpt4 key购买 nike

给定以下枚举:

class MyEnum(IntEnum):

A = 0
B = 1
C = 2

如何指定默认值。我希望能够做到:

my_val = MyEnum()

并且有my_val<MyEnum.A: 0>

这可能吗?我试过自定义 __new__ , __init__ , __call__但我无法让它工作。

最佳答案

falsetru's answer如果需要满足 0 参数情况,这将是可行的方法。

如果只是在给定值不存在时返回默认值,我们可以覆盖 Enum 类中的 _missing_ 钩子(Hook)(自 Python 3.6 起):

from enum import IntEnum


class MyEnum(IntEnum):
A = 0
B = 1
C = 2

@classmethod
def _missing_(cls, value):
return cls.A

assert MyEnum(0) is MyEnum.A
assert MyEnum(1) is MyEnum.B
assert MyEnum(-1) is MyEnum.A
assert MyEnum(None) is MyEnum.A

关于python - 有没有办法为 python 枚举指定默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44867597/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com