【发布时间】:2017-12-05 15:52:33
【问题描述】:
给定以下枚举:
class MyEnum(IntEnum):
A = 0
B = 1
C = 2
如何指定默认值。我希望能够做到:
my_val = MyEnum()
并且有my_val 是<MyEnum.A: 0>
这可能吗?我试过自定义__new__、__init__、__call__,但我无法让它工作。
【问题讨论】:
-
您希望
my_val成为枚举值A?你不想让my_val成为MyEnum的一个实例吗? -
@ChristianDean 我想做
my_val = MyEnum(),结果和my_val = MyEnum(0)一样 -
你想要这样的东西吗? ideone.com/mKk5nF 或 ideone.com/mfW9Jr
-
@falsetru 是的,第二个链接正是我需要的。
-
你可以使用
_missing_函数;根据documentation"_missing_– 在找不到值时使用的查找函数;可能会被覆盖"