如何从内部类构造函数访问外部类的静态成员?

问题描述:

如何得到这个工作:如何从内部类构造函数访问外部类的静态成员?

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类,直到最后才创建它。

+1

感谢您的澄清。 我这样解决它:def __init __(self,v = None):如果v是None:v = ABC.C1 – 2010-12-19 12:07:34

+0

是的,这也适用。尽管如此,没有必要嵌套类,无论如何。如果你解释为什么你认为你需要它,它可能是有用的。 – 2010-12-19 12:14:56