Python更新类变量

我已经简化了这样的问题。


程序


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())来解决此问题,但是您能否解释一下为什么会发生这种情况,以及对此有更好的解决方案?


海绵宝宝撒
浏览 210回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python