我已經簡化了這樣的問題。程序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
提交
取消