14

関数呼び出しでキーワード引数を使用する簡単な例を次に示します。特にない。

def foo(arg1,arg2, **args):
    print arg1, arg2
    print (args)
    print args['x']

args ={'x':2, 'y':3}
foo(1,2,**args)

期待どおりに印刷されます:

1 2
{'y': 3, 'x': 2}
2

同じスタイルのキーワード引数をマルチプロセッシング タスクに渡そうとしていますが、args リストで ** を使用すると構文エラーになります。私の関数 stretch() は、2 つの位置引数と n 個のキーワード引数を取ることを知っています。

pool = [multiprocessing.Process(target=stretch, args= (shared_arr,slice(i, i+step),**args)) for i in range (0, y, step)]

multiprocessing.Process にキーワード引数を渡すことは可能ですか? もしそうなら、どのように?そうでない場合、なぜですか?

4

1 に答える 1

21

キーワード引数として使用している辞書は、kwargsパラメーターとしてProcessオブジェクトに渡す必要があります。

pool = [multiprocessing.Process(target=stretch, args= (shared_arr,slice(i, i+step)),kwargs=args) for i in range (0, y, step)]
于 2012-07-18T17:26:36.377 に答える