【发布时间】:2017-01-25 00:54:59
【问题描述】:
这不起作用:
class A:
a1 = 4
class B:
b1 = A.a1 # Fails
b2 = 6
class C:
c1 = A.B.b2 # Fails
任何非神秘的方法来解决它?我知道我可以从 A 中取出 B 和 C,但我想让它们嵌入。我也认为没有类成员会更容易,因为它们可以很容易地作为构造函数中的参数传递给嵌套类,但是作为所有类成员,我不知道如何在这里做一些类似的事情。我还在一些线程上读到,这种用法记得使用类作为命名空间,应该使用模块而不是类来解决,但上面的类对我来说是真实的类(我构造实例),此外还有我想分享的类数据其中。
【问题讨论】:
-
“简单”的出路是
A、B和C都继承自一个参数类。 -
不确定你说的是什么。在顶部添加另一个级别的继承?
-
见下文。基本上有
A(Param)和B(Param)或者从Param拉入类变量而不是A,如果您需要不同的参数名称。 -
嵌套的用例是什么?
-
B 和 C 在某些情况下是用于对 A 中使用的静态符号进行分组的命名空间,我将它们放在 A 内部的类中,用于符号组中的分层代码组织(如枚举、选项)。某些组的符号引用了其他组中的符号。
标签: python nested inner-classes