Put target function's named arguments into multiprocessing.Process with key=value syntax

问题描述 投票:0回答:1

我们有一个标准的函数语法来传递关键字参数。我们可以调用

foo(arg_1=value1, arg_2=value2)
,这很有效。但是当我尝试将参数放入
multiprocessing.Process
.

时它不起作用

这个表达式

multiprocessing.Process(target=foo, args=(arg_1=value1, arg_2=value2))
导致异常:

语法错误:语法无效

如何将“命名”参数放入流程中(以避免数据输入错误)?

python python-3.x arguments
1个回答
0
投票

multiprocessing.Process
需要一个元组作为
args
参数,它作为位置参数传递给
target
函数。如果你想将关键字参数传递给
target
,你必须提供一个字典作为
kwargs
参数给
multiprocessing.Process
.

如果你想使用

key=value
语法,而不是提供字典文字
{'arg1': value1, 'arg2': value2}
你可以使用
dict()
构造函数:

multiprocessing.Process(target=foo, kwargs=dict(arg_1=value1, arg_2=value2))

请注意,它有一些限制,请参阅初始化字典的首选语法是什么:花括号文字 {} 或 dict() 函数?

© www.soinside.com 2019 - 2024. All rights reserved.