我有一个带有函数和while循环的python脚本,我想从另一个也有一个while循环的python脚本调用这个函数。这是一个示例脚本:
script1.py:
global printline
printline = abc
def change(x):
global printline
printline = x
while True:
global printline
print printline
这是script2.py:
from script1 import change
change(xyz)
while True:
print hello
当我运行script2.py时,它开始打印abc,并且不会进入此脚本中的while循环。
当我运行script1.py时,它会输出abc。
当我一起跑,在不同的终端,都打印abc。
我需要它,以便在运行两个脚本时,script2.py可以在进入while循环时更改变量printline。
我不知道这是否是正确的方式,因为我是python的新手。
感谢。
答案 0 :(得分:1)
执行from script1 import change
后,它会执行script1.py
中的所有顶级代码。因此它执行while True:
块,它无限循环,并且永远不会返回script2.py
。
您需要拆分script1.py
,以便在不执行顶级代码的情况下导入change()
函数。
change.py:
def change(x):
global printline
printline = x
script1.py:
from change import change
change("abc")
while True:
print printline
script2.py:
from change import change
change("xyz");
while True:
print printline