我有a.py和b.py在同一个目录中。在 a.py 中,代码是
A = 'a1'
from b import B
print(B)
Run Code Online (Sandbox Code Playgroud)
在 b.py 中,代码是
B = 'b1'
from a import A
print(A)
Run Code Online (Sandbox Code Playgroud)
现在运行a.py,结果是
b1
a1
b1
Run Code Online (Sandbox Code Playgroud)
我不明白。有人会解释吗?谢谢!
这个问题似乎集中在执行顺序上。这与循环导入相结合。
循环规则在链接的答案中说明,我不同意它是重复的:
现在,执行顺序:
AAimport b,它不存在,因此被执行。Bimport B,它不存在(作为导入)并被执行。A运行。这次导入时B,它已经存在并返回了。幸运的是我们已经宣布了b1。例如,如果我们在 import 语句之后更改它,事情会变得很奇怪。如果我们在导入后先声明它,事情就会崩溃。A完成其运行。B完成其运行。这就是您得到的打印语句的顺序。重要的是要注意这里的执行是完全线性的。