请问python这段代码中,两个变量名的输出结果为什么会不一样?

图片说明
请问第一个Test的输出为什么是100,而不是和第二个Test输出一样?

qq_41904854
qq_41904854 “按照就近原则,在类里面提到Test就是类名的Test”,如果这样,输出结果不应该反过来吗,第二个结果才是100?
11 个月之前 回复

3个回答

你可以把最后一句注释掉,就会看到依然打印出100,
在执行第一个print之前,Test类没有定义完成,所以打印出100
第二个结果就是正常理解的结果类

qq_41904854
qq_41904854 回复iron02: 当类体中的语句都执行完后,才把这个类对象赋值给变量Test,是这个意思吗
11 个月之前 回复
iron02
iron02 回复qq_41904854: class Test是类头,后面跟着缩进的部分是类体,类体里的方法执行完之前,这个类没有声明成功
11 个月之前 回复
qq_41904854
qq_41904854 ‘在执行第一个print之前,Test类没有定义完成’,这句如何理解
11 个月之前 回复

主程序的
print(Test)
打印的是类

而类里面的,因为此时print(Test),而Test没有初始化,所以不能存在,打印的是变量100

所以先输出的是100
后面才是类。

qq_41904854
qq_41904854 ‘类里面的,因为此时print(Test),而Test没有初始化’,这句如何理解
11 个月之前 回复

因为你的类和全局变量都叫做Test
按照就近原则,在类里面提到Test就是类名的Test
在主程序里,就是全局变量,那个100的Test

qq_41904854
qq_41904854 按照就近原则,在类里面提到Test就是类名的Test”,如果这样,输出结果不应该反过来吗,第二个结果才是100?
11 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问