并行调用对象方法

时间:2011-10-21 21:34:01

标签: python parallel-processing

我有一个对象列表,对于每个对象,我想调用它们的foo函数,并将其传递给参数栏。我想并行化这个操作,所以现在我正在考虑使用多处理包中的Pool.map。不过,我不知道如何使用map运行对象方法。我怎样才能做到这一点?或者有更好的方法并行执行此操作吗?

1 个答案:

答案 0 :(得分:2)

定义一个辅助函数,并通过Pool.map将对象方法及其参数传递给该函数。辅助函数看起来像这样:

def helper(*args):
    return args[0](*args[1:])

你会像这样使用它:

pool = Pool()
results = pool.map(helper, [obj.method, arg1, arg2])

请注意,辅助函数必须可以直接从其包含模块导入。