如何从内部类构造函数访问外部类的静态成员?
问题描述:
如何得到这个工作:如何从内部类构造函数访问外部类的静态成员?
class ABC(object):
C1 = 1
class DEF(object):
def __init__(self, v=ABC.C1):
self.v = v
a = ABC()
从内部类DEF,我无法访问常量“C1”。我尝试了“ABC.C1”和“C1”,但无济于事。
请指教。
答
我建议你不要嵌套类。你为什么这样做?没有理由这样做,永远。此作品:
>>> class ABC(object):
... C1 = 1
...
>>> class DEF(object):
... def __init__(self, v=ABC.C1):
... self.v = v
...
>>> a = ABC()
>>> d = DEF()
>>> d.v
1
您的代码不起作用的原因是ABC尚不存在,因为它尚未构建。您不能从自己的构造中访问ABC类,直到最后才创建它。
感谢您的澄清。 我这样解决它:def __init __(self,v = None):如果v是None:v = ABC.C1 – 2010-12-19 12:07:34
是的,这也适用。尽管如此,没有必要嵌套类,无论如何。如果你解释为什么你认为你需要它,它可能是有用的。 – 2010-12-19 12:14:56