现有两个文件 classA.py 和 classB.py。代码如下
classB
from classA import classA
class classB:
def changeA(self):
classA.name="classB"
print(classA.name)
classA
class classA:
name = "classA"
def printA():
print(classA.name)
if __name__ == "__main__":
printA()
from classB import classB
classB().changeA()
printA()
其中,A类定义了个类变量,所有成员都可以修改该值,但是运行classA.py结果为:
classA
classB
classA
如果在创建一个文件,main.py
main.py
from classB import classB
from classA import *
printA()
classB().changeA()
printA()
运行结果为:
classA
classB
classB
在第一次运行中,类B中的函数并没有成功修改类A的成员,而第二次运行中成功修改了。两次运行的区别就是一个是在函数内部局部import,另一个是在文件头全局import,请问出现这个运行差异的原因是什么?