如何理解python中的导入?
我在同一个目录中有如何理解python中的导入?,python,import,Python,Import,我在同一个目录中有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 我不明白。有人能解释一下吗?谢谢 这个问题似乎集中在执行顺序上。这与循环导入相结合 循环规则在中有规定,我不同意重复: 如果模块尚未导入,请执行它 否则,不管原始导入是否完成,只需将其返回即可 现在,执行顺序: 运行A A导
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
我不明白。有人能解释一下吗?谢谢 这个问题似乎集中在执行顺序上。这与循环导入相结合 循环规则在中有规定,我不同意重复:
A
A
导入不存在的b
,因此执行李>
B
导入B
,该导入不存在(作为导入)并已执行李>
A
运行。但这次导入B
时,它已经存在并返回。幸运的是,我们已经声明了b1
。例如,如果我们在import语句之后更改它,事情会变得很奇怪。如果我们在进口后先申报的话,事情就坏了李>
A
完成其运行B
完成其运行这是您得到的打印语句的顺序。需要注意的是,这里的执行是完全线性的 顺便说一句,这是一个循环导入。所以,这个问题没有单一的解决方案?我想每种语言都会遇到这个问题。只是好奇:-)@Nishant好吧,如果你什么都不做,你就会陷入一个导入循环,所以作为一个语言设计师,你要么以某种方式打破这个循环,要么完全不允许它。从完全理论的角度来看,让这种情况永远持续下去可能是“正确的”。