我已经简化了这样的问题。
程序
from classB import B
myClass = B(7)
myClass.print__()
myClass.bbb = 8
print(myClass.bbb)
myClass.print__()
classA.py
class A:
def __init__(self, a):
self.aaa = a
def print_(self):
print(self.aaa)
classB.py
from classA import A
class B:
def __init__(self, bb):
self.bbb = bb
self.Aclass = A(self.bbb)
def print__(self):
self.Aclass.print_()
在program.py中,我创建了一个classB实例myClass,并用7进行了初始化。如果这样,将从classB.py中创建一个classA实例Aclass,并用7对其进行初始化,因此当我调用print __()时,它会显示Aclass也用7初始化。
这里的问题是,当我将myClass.bbb更新为8时,我也希望Aclass.aaa为8,但事实并非如此。
我可以通过创建另一个函数(如update_varA())来解决此问题,但是您能否解释一下为什么会发生这种情况,以及对此有更好的解决方案?
相关分类