我们有一个标准的函数语法来传递关键字参数。我们可以调用
foo(arg_1=value1, arg_2=value2)
,这很有效。但是当我尝试将参数放入multiprocessing.Process
.时它不起作用
这个表达式
multiprocessing.Process(target=foo, args=(arg_1=value1, arg_2=value2))
导致异常:
语法错误:语法无效
如何将“命名”参数放入流程中(以避免数据输入错误)?
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() 函数?