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

时间:2010-12-19 11:16:01

标签: python

如何让它发挥作用:

class ABC(object):
    C1 = 1

    class DEF(object):
        def __init__(self, v=ABC.C1):
            self.v = v


a = ABC()

从内部类DEF,我无法访问常量“C1”。我单独尝试使用“ABC.C1”和“C1”,但无济于事。

请告知。

1 个答案:

答案 0 :(得分:0)

我建议你不要上课。你为什么那样做?永远没有理由这样做。这有效:

>>> 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类,它不会在最后创建。