2016-08-22 184 views
0

我有一个带有函数和while循环的python脚本,我想从另一个具有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。

谢谢。

+1

这些不可能是实际的脚本。你不会在'abc'和'xyz'上得到“名称未定义”的错误吗?请逐字逐句发布您遇到的实际代码,否则任何人都可以做的就是猜测。 –

+0

这些脚本是否应该是共享相同'printline'变量的独立程序?如同时,当两个脚本同时运行时,它们共享相同的'printline'变量? –

+0

'abc'和'xyz'应该是字符串'“abc”'和'“xyz”'? – Barmar

回答

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 
相关问题