Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从内部类构造函数访问外部类的静态成员?_Python - Fatal编程技术网

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

Python 如何从内部类构造函数访问外部类的静态成员?,python,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”,但没有效果 请告知。我建议您不要嵌套类。你为什么这么做?永远没有理由这么做。这项工作: >>> class ABC(objec

如何使其工作:

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 uuu init uuu(self,v=None):如果v是None:v=ABC.c1是的,这也行。尽管如此,仍然不需要嵌套类,完全不需要。如果你解释一下为什么你认为你需要它,这可能会很有用。