Python 3中的自定义枚举类型
问题描述:
我确定这是重复的,但目前我无法追踪它。Python 3中的自定义枚举类型
在这个例子中,为什么self
没有定义?
class State(Enum):
MY_STATE = type(self)('foo', 'bar')
def __init__(self, some, thing):
self.some = some
self.thing = thing
更换type(self)
与State
也返回NameError
但State
。
答
为什么不提取另一类是这样的:
from enum import Enum
class MyClass:
def __init__(self, some, thing):
self.some = some
self.thing = thing
class State(Enum):
MY_STATE = MyClass('foo', 'bar')
print(State.MY_STATE == State.MY_STATE)
+0
这是否会被认为比试图将它整合到一个班级更pythonic? – MTCoster
'self'指实例。为什么它应该在_class body_中定义?它只在内部方法中可用,并且只有在您命名第一个参数'self'时才可用。 – MSeifert
你想要的代码是什么? –
@MenglongLi将参数添加到'Enum'成员 – MTCoster