You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将目标函数的命名参数以key=value形式传入multiprocessing.Process

解决multiprocessing.Process传递命名参数的问题

直接用multiprocessing.Process的kwargs参数即可传递命名关键字参数,具体用法如下:

  • args参数仅用于传递位置参数,接受一个元组,不能在元组内写key=value的形式(这会触发语法错误)。
  • 传递命名参数需要使用kwargs参数,它接受一个字典,键为目标函数的参数名,值为对应参数值。

示例代码

import multiprocessing

def foo(arg_1, arg_2):
    print(f"arg_1: {arg_1}, arg_2: {arg_2}")

if __name__ == "__main__":
    val1 = "测试值1"
    val2 = "测试值2"
    # 正确传递命名参数
    process = multiprocessing.Process(target=foo, kwargs={'arg_1': val1, 'arg_2': val2})
    process.start()
    process.join()

补充说明

你之前报错的原因是args=(arg_1=value1, arg_2=value2)属于非法语法——Python的元组不支持这种键值对写法。args的正确用法是传入位置参数的序列,比如args=(val1, val2)对应foo(val1, val2);而命名参数必须通过kwargs字典传递,这样目标函数就能正确识别参数名,避免传参错误。

内容的提问来源于stack exchange,提问作者MIku

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 03:12:38