如何将多个参数传递给 Process?

Posted

技术标签:

【中文标题】如何将多个参数传递给 Process?【英文标题】:How to pass more than one argument to Process? 【发布时间】:2020-11-07 20:16:36 【问题描述】:

我想使用多进程模块启动一个具有多个参数的函数作为新进程:

 def f(*args):
    x= args[0]
    y= args[1]
    return x+y

p = Process(target=f,args=??)

我想知道如何传递多个参数;据我所知,文档没有提到这一点。

【问题讨论】:

你有没有尝试过?想象如何从发布的代码中传递多个参数似乎并不难 您在寻找 multiprocessing.starmap() 吗? 不应该 args* 实际上是 *args 我尝试将参数分别作为元组和列表提供,但我不知道如何在函数中捕获它们 【参考方案1】:

使用单独的参数:

def f(x,y):
    return x+y

if __name__ == '__main__':
    p = Process(target=f,args=(1,2,))
    p.start()
    p.join()

使用*args 语法:

def f(*args):
    x = args[0]
    y = args[1]
    return x+y

if __name__ == '__main__':
    p = Process(target=f,args=(1,2,))
    p.start()
    p.join()

【讨论】:

以上是关于如何将多个参数传递给 Process?的主要内容,如果未能解决你的问题,请参考以下文章

Process.Start - 将 html 代码作为参数传递给 exe

如何在django中将多个参数传递给url

如何通过 System.Diagnostics.Process() 将参数传递给已经打开的终端

如何将参数传递给进程

将多个参数传递给testcafe中的ClientFunction

如何使用 TypeScript 将多个参数传递给 Angular 中的 @Directives (@Components)?