我在同一目录中有a.py
和b.py
。在a.py中,代码为
A = 'a1'
from b import B
print(B)
在b.py中,代码为
B = 'b1'
from a import A
print(A)
现在运行a.py,结果是
b1
a1
b1
我不明白。有人会解释吗?谢谢!
答案 0 :(得分:1)
这个问题似乎集中在执行顺序上。这与循环导入结合在一起。
linked answer中陈述了循环规则,我不同意重复的规则:
现在,执行顺序:
A
A
导入b
,它不存在,因此被执行。 B
导入B
,它不存在(作为导入)并且已执行。 A
运行。但这一次导入B
时,它已经存在并返回了。幸运的是,我们已经声明了b1
。例如,如果我们在import语句之后更改它,事情将会变得很奇怪。如果我们在导入后首先声明它,事情将会崩溃。 A
完成其运行。B
完成其运行。这就是您得到的打印语句的顺序。请务必注意,此处的执行是完全线性的。