0

私の python スクリプトには奇妙な動作があります。そのため、別のスクリプト B を何度も呼び出す Python スクリプト A があります。B の呼び出しには、subprocessモジュールを使用しています。

スクリプト 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のスコープは何ですか? アドバイスをありがとう。乾杯

4

1 に答える 1

4

subprocess.call子プロセスを開始します。そのプロセスは、何が起こっているAか、何回呼び出されたかについては何も知りません。知っているのは、渡されたコマンドライン引数だけです。この場合、 を呼び出すとが常に等しい'B'ため、常にコマンドライン引数なしで呼び出します。parameters['B']subprocess.call

于 2013-01-18T15:43:12.913 に答える