关于python的实例引用的问题

关于


class Test():
    def __init__(self,ai):
        self.screen = 1
        ai.screen = 2

from test import Test
class Li:
def init(self):
self.screen = 1
self.test = Test(self)
def scren(self):
print(self.screen)
if name == 'main':
ai = Li()
ai.scren()

我用下面的代码运行,为什么输出是2.


class Test():
    def __init__(self,ai):
        self.screen = 2
        # ai.screen = 2

我把引用的代码改了,为什么输出是1


class Test:

    def __init__(self,ai):

        self.screen = 'a'
        ai.screen = 'b' #ai附加screen属性

class Li:
    def __init__(self):
        self.test = Test(self)#此行和下一行互换位置结果会不一样,就是一个谁后赋值取谁的问题
        self.screen = 'c'#此行和test类中的ai.screen是等价的
        
        

    def scren(self):
        print(self.screen)

if __name__ == '__main__':
    ai = Li()
    ai.scren()
    print(ai.screen)
    print(ai.test.screen)