【发布时间】:2015-08-03 06:17:36
【问题描述】:
我设法定义了一个类A,使用另一个类B 的实例列表作为类A 的实例变量。类B 具有更改类A 的其他实例变量a1 的功能。 A 类还具有更改类B 的实例变量bb 的功能。所以A 类可以访问B 类,B 类可以访问A 类。
这两个类嵌套在一起。我知道我们可以更轻松地将类B 的所有实例变量和函数更改为类A。但在我的项目中,这种嵌套结构才是真正的样子。
class A:
class B:
count = 0
def __init__(self,b1=None,b2=None):
self.b1 = b1
self.b2 = b2
def funcb(self,bb):
A.a1 = pyfunc1(bb)
def __init__(self,a1,a2):
self.a1 = a1
self.a2 = a2
self.listb = [A.B()]
def funca(self,aa):
A.B.count += 1
b = A.B(self.a1,self.a2)
listb.append(b)
listb[A.B.count].b1 = listb[A.B.count-1].b1.pyfunc2(aa)
listb[A.B.count].b2 = pyfunc3(aa,self.a2)
listb[A.B.count].funcb(self.a2)
我想知道的是,这样的嵌套类是否会降低python的效率?有更好的解决方案吗?
【问题讨论】:
-
您可能想阅读the zen。
-
Python 的嵌套类不像 Java 的嵌套类,内部类可以引用外部类的实例。它们实际上是两个独立的类。
A.a1 = pyfunc1()将在 class 上分配a1字段。