aaa.py:
import subprocess
print(11111)
exp = 0
subprocess.run(['python', 'bbb.py'])
print(22222)
print(exp)
bbb.py
import aaa
print("hello world")
print("bbb.py :", aaa.exp)
aaa.exp += 1
为什么总是陷入循环?
您的实现会在 aaa.py 和 bbb.py 之间创建循环依赖关系,从而导致无限循环。让我们一步步分解发生了什么:
1. aaa.py is executed.
2. import subprocess and print(11111) are executed.
3. exp is set to 0. subprocess.run(['python', 'bbb.py']) runs bbb.py.
Now, in bbb.py:
4. import aaa tries to import aaa.py again.
问题来了:bbb.py 导入 aaa 时,会再次执行 aaa.py 中的所有代码,包括 subprocess.run(['python', 'bbb.py'])。这会创建一个循环,其中 aaa.py 导入 bbb.py,bbb.py 导入 aaa.py,从而导致无限循环。