2012-07-18 7 views
8

ここでは、関数呼び出しでキーワード引数を使用する簡単な例を示します。特にない。Pythonマルチプロセッシングのキーワード引数

予想通り、印刷し
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 

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

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

マルチプロセッサにキーワード引数を渡すことは可能ですか。もしそうなら、どうですか?そうでない場合、なぜですか?

+1

「args」ではなく「kwargs」という名前にする必要があります。 – kev

答えて

15

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

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

それを傷つける。それを動かすこともできました。ありがとう! – Jzl5325

関連する問題