在Python中,有没有声明要声明的类型的类成员?
class Foo:
def __init__(self, a, b):
self.one = a
self.two = b
ZERO = Foo(0, 0)
ONE = Foo(0, 1)
这个问题似乎是因为在评估Foo
和Foo.ZERO
时课程Foo.ONE
没有完全定义 - 有什么方法可以克服同时保持Foo.MEMBER
的形式
答案 0 :(得分:5)
这似乎有效:
class Enum(object):
def __init__(self, a, b):
self.one = a
self.two = b
def __metaclass__(name, bases, dict):
cls = type(name, bases, dict)
cls.ZERO = cls(0, 0)
cls.ONE = cls(0, 1)
return cls
答案 1 :(得分:1)
可以这样做:
class Foo:
def __init__(self, a, b):
self.one = a
self.two = b
Foo.ZERO = Foo(0, 0)
Foo.ONE = Foo(0, 1)
答案 2 :(得分:0)
我认为这是不可能的! (也许我不清楚) 如果有可能,那么这个原因, Foo有成员ZERO,它也生成了Foo,并再次....
我认为如果可以生成类,python也会提醒您或其他内容。