我已经简化了这样的问题。程序from classB import BmyClass = B(7)myClass.print__()myClass.bbb = 8print(myClass.bbb)myClass.print__()classA.pyclass A: def __init__(self, a): self.aaa = a def print_(self): print(self.aaa)classB.pyfrom classA import Aclass 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())来解决此问题,但是您能否解释一下为什么会发生这种情况,以及对此有更好的解决方案?
添加回答
举报
0/150
提交
取消