【问题标题】:Python multiprocessing keyword argumentsPython 多处理关键字参数
【发布时间】:2012-07-18 17:18:13
【问题描述】:

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

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

args ={'x':2, 'y':3}
foo(1,2,**args)

按预期打印:

1 2
{'y': 3, 'x': 2}
2

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

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

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

【问题讨论】:

  • 你应该命名kwargs kwargs 而不是args

标签: python arguments multiprocessing keyword-argument


【解决方案1】:

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

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

【讨论】:

  • 从头开始。让它也可以移动()。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-01-26
  • 2011-02-14
  • 1970-01-01
  • 2010-12-06
  • 1970-01-01
  • 2013-08-16
  • 1970-01-01
相关资源
最近更新 更多