如何定义以某种方式派生自int、具有自定义起始值并添加自定义属性的 Python 枚举类?我知道如何从int使用enum.IntEnum和设置起始值中得出,
Goo = enum.IntEnum("Goo", "MOO FOO LOO", start = 42)
以及如何将自定义属性添加到基本枚举类型,
class Goo(enum.Enum):
MOO = (42, "forty-two")
FOO = (43, "forty-three")
LOO = (44, "forty-four")
def __init__(self, value, alias):
self._value = value #self.value gives AttributeError, as expected, grrr...
self.alias = alias
但我怎么做这三个?__new__()我也试过各种方法
class Goo(int, enum.Enum):
MOO = (42, "forty-two")
FOO = (43, "forty-three")
LOO = (44, "forty-four")
def __new__(cls, value, alias):
self = super().__new__(cls, value)
self.alias = alias
return self
大多是奇怪的错误,
TypeError: int() takes at most 2 arguments (3 given)
在这种情况下。谢谢。
吉姆