【发布时间】:2011-12-12 22:07:11
【问题描述】:
我有一个对象列表,对于每个对象,我想调用它们的 foo 函数,并将参数 bar 传递给它。我想并行化这个操作,所以现在我正在研究使用多处理包中的 Pool.map。不过,我不确定如何使用 map 来运行对象方法。我怎样才能做到这一点?还是有更好的方法可以并行执行此操作?
【问题讨论】:
标签: python parallel-processing
我有一个对象列表,对于每个对象,我想调用它们的 foo 函数,并将参数 bar 传递给它。我想并行化这个操作,所以现在我正在研究使用多处理包中的 Pool.map。不过,我不确定如何使用 map 来运行对象方法。我怎样才能做到这一点?还是有更好的方法可以并行执行此操作?
【问题讨论】:
标签: python parallel-processing
定义一个辅助函数并将对象方法及其参数通过Pool.map 传递给该函数。辅助函数看起来像这样:
def helper(*args):
return args[0](*args[1:])
你会这样使用它:
pool = Pool()
results = pool.map(helper, [obj.method, arg1, arg2])
请注意,辅助函数必须可以直接从其包含的模块导入。
【讨论】: