Python子进程模块 - 变量范围

时间:2013-01-18 15:40:20

标签: python python-2.7 subprocess

我的python脚本有奇怪的行为。所以,我有python脚本A,它多次调用另一个脚本B.为了呼叫B,我使用子进程模块。

脚本A:

的片段
for i in range(0,10000):
    parameters = []
    parameters.append("B")
    result = subprocess.call(parameters)

脚本B的片段:

testdata = some_logic
if testdata:
    function_1()
else:
    function_2()

因此,脚本A将多次调用脚本B.经过一些测试后,我注意到变量 testdata 对当前运行的脚本B没有预期的价值。在运行脚本B时是否有可能,变量 testdata 具有以前的电话B的价值?在这种情况下,变量 testdata 的范围是多少?谢谢你的建议。干杯

1 个答案:

答案 0 :(得分:4)

subprocess.call启动子进程。这个过程对A中发生的事情或被调用的次数一无所知 - 它只知道你传递给它的命令行参数。在这种情况下,您始终在没有命令行参数的情况下调用'B',因为当您致电parameters时,['B']始终等于subprocess.call