使用多处理Pool.map()时不能class=‘class 3’>选择我试着用multiprocessing氏Pool.map()功能同时分工。当我使用以下代码时,它工作得很好:import multiprocessingdef f(x):
return x*xdef go():
pool = multiprocessing.Pool(processes=4)
print pool.map(f, range(10))if __name__== '__main__' :
go()然而,当我在一种更面向对象的方法中使用它时,它就不起作用了。它给出的错误消息是:PicklingError: Can't pickle <type 'instancemethod'>: attribute lookup
__builtin__.instancemethod failed当以下是我的主程序时,就会发生这种情况:import someClassif __name__== '__main__' :
sc = someClass.someClass()
sc.go()以下是我的someClass班级:import multiprocessingclass someClass(object):
def __init__(self):
pass
def f(self, x):
return x*x def go(self):
pool = multiprocessing.Pool(processes=4)
print pool.map(self.f, range(10))谁知道问题可能是什么,或者是一个简单的解决方法?
3 回答
一只斗牛犬
TA贡献1784条经验 获得超2个赞
__call__()
someClass()
someClass.go()
someClass()
添加回答
举报
0/150
提交
取消