Python多处理关键字参数

Jzl*_*325 9 python arguments multiprocessing keyword-argument

这是一个在函数调用中使用关键字参数的简单示例.没什么特别的.

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

args ={'x':2, 'y':3}
foo(1,2,**args)
Run Code Online (Sandbox Code Playgroud)

正如预期的那样打印:

1 2
{'y': 3, 'x': 2}
2
Run Code Online (Sandbox Code Playgroud)

我试图将相同的样式关键字参数传递给多处理任务,但在args列表中使用**是语法错误.我知道我的函数stretch()将采用两个位置参数和n个关键字参数.

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

是否可以将关键字参数传递给multiprocessing.Process?如果是这样,怎么样?如果没有,为什么?

And*_*Cox 16

您作为关键字args使用的字典应作为kwargs参数传递给Process对象.

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