Python multiprocessing pool map with multiple arguments
本问题已经有最佳答案,请猛点这里访问。
我有一个函数要用多个参数从multiprocessing pool.map调用。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 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() |
但它给了我以下的错误
1 | TypeError: printed() takes exactly 2 arguments (1 given) |
号
我尝试过其他答案的解决方案,但它们不适用于我。我怎么解决这个问题?为什么会出现这个问题(我没有拿到泡菜POV)
您应该在数组中提供参数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 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() |