我的代码中有以下类结构:
超类 A,它基本上是子类 B 中的对象列表。A 类有一个方法 meth,它创建一个变量 var(通过从文件中读取) . 变量var需要子类B的方法可以访问,问题是初始化a = A()后,var是实例a的一个属性,子类方法不能使用super( )。var 是一个大型浮点数组(大约 1e5 个元素),所以我试图通过不使其成为 B 实例的属性(n 次!)或将其显式传递给 methB 来最小化内存使用量。
class A(object):
def __init__(self,n):
self.data = [B() for _ in xrange(n)]
def __getitem__(self,n):
return self.data[n]
def methA(self):
with open('file.txt','r') as fp:
self.var = fp.readlines()
class B(A):
def __init__(self):
self.derived_var = []
def methB():
'''This method needs to use var defined in meth of A above.'''
a = A(5)
a.methA()
for b in A:
b.methB()
这在python中是可能的还是编码不好?