为什么你一直循环播放“11111”?

问题描述 投票:0回答:1

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

为什么总是陷入循环?

python python-3.x subprocess
1个回答
0
投票

您的实现会在 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,从而导致无限循环。

© www.soinside.com 2019 - 2024. All rights reserved.