python:嵌套类:访问外部类的类成员

use*_*220 5 python nested inner-classes

这不起作用:

class A:
  a1 = 4

  class B:
    b1 = A.a1  # Fails
    b2 = 6

  class C:
    c1 = A.B.b2  # Fails
Run Code Online (Sandbox Code Playgroud)

有任何非神秘的方法可以解决吗?我知道我可以将B和C从A中取出,但我想保留它们。我还认为,没有类成员会更容易,因为它们可以轻松地作为构造函数中的参数传递给嵌套类,但是作为所有这些类成员,我不知道如何在这里做类似的事情。我还读过一些线程,这种用法记得使用类作为名称空间,应该使用模块而不是类来解决,但是上面的类对我来说是真实的类(我构造实例),另外还要共享类数据其中。

Ant*_*hon 1

由于两个不同的原因,此操作失败了。一是当你尝试访问时还A没有准备好给你。A.a1BNameError

如果你使用子类解决这个问题。以下将起作用:

class A:
  a1 = 4

class _A(A):

  class B:
    b1 = A.a1  # Fails
    b2 = 6
Run Code Online (Sandbox Code Playgroud)

然而,由于没有 attribute ,访问A.B.b2inC仍然无法工作。你会得到一个。ABAttributeError