具有多个参数的Python多处理池映射

时间:2015-04-03 06:42:35

标签: python python-2.7 python-multiprocessing

我有一个函数可以从具有多个参数的多处理pool.map中调用。

from multiprocessing import Pool
import time

def printed(num,num2):
    print 'here now '
    return num

class A(object):
    def __init__(self):
        self.pool = Pool(8)

    def callme(self):
        print self.pool.map(printed,(1,2),(3,4))
if __name__ == '__main__':
    aa = A()
    aa.callme()

但它给了我以下错误

TypeError: printed() takes exactly 2 arguments (1 given)

我在这里尝试过其他答案的解决方案,但它们对我不起作用。 我怎样才能解决它,这个问题的原因是什么(我没有得到泡菜POV)

1 个答案:

答案 0 :(得分:1)

你应该在数组

中给出args
from multiprocessing import Pool
import time

def printed(*args):
    print 'here now '
    return args[0][0]

class A(object):
    def __init__(self):
        self.pool = Pool(8)

    def callme(self):
        print self.pool.map(printed,[(1,2),(3,4)])
if __name__ == '__main__':
    aa = A()
    aa.callme()