我正在使用python来实现一个应用程序。我有以下课程:
class A():
def __init__(self):
self._B_list=[] # objects of B class will be appended as the application run
b = B(self) # I use A as initial parameter of B
self._B_list.append(b)
class B()
def __init__(self, A_object):
self._parent = A_object # Here I save the pointer of upper layer class object
从上面可以看出,类A
有一个类B
的对象列表。 B
将记录其上层对象。我这样做的原因是因为类A
中有一个大数据容器(20 MB),它应该被列表中的所有类B
对象共享。
我认为我上面展示的方式是记忆效果。但由于我从来没有正式编写Python代码,我对此并不十分肯定。我可以请你发表意见吗?欢迎提出任何意见。
感谢。
答案 0 :(得分:2)
由于只有一个A,因此您无需在每个B实例中存储指向它的指针。创建此OnlyOneA
后,只需将其指定给该类 B
并且B的每个实例都会找到它:
class A():
def __init__(self):
assert(not hasattr(B, '_parent')) # make sure there is only one A
B._parent = self
...
然后myB
是B
my._parent
将获得A的实例。