我似乎无法让我的fib_worker类运行
import multiprocessing
class fib_Worker(object):
def worker(self, num):
"""thread worker function"""
print 'Worker:', num
return
if __name__ == '__main__':
jobs = []
for i in range(5):
p = multiprocessing.Process(target=Self.fib_Worker.worker, args=(i,))
jobs.append(p)
p.start()
我收到此错误:
TypeError: unbound method worker() must be called with fib_Worker instance as first argument (got int instance instead)
我试过用不同的方式调用它并且不确定什么是错的,谢谢
编辑添加到mhawkes建议
答案 0 :(得分:1)
什么是import numpy as np
from itertools import compress
from random import sample
a = 2
y = [0, 1, 1, 0, 1, 0, 1, 0, 1, 1]
X = np.random.rand(10, 3)
picked = sample(list(compress(X, y)), a)
?您需要首先实例化该类:
Self.fib_Worker
p = multiprocessing.Process(target=fib_Worker().worker, args=(i,))
创建了一个类fib_Worker()
的实例。一旦你有了,你可以调用它的方法。
您还需要在fib_Worker
方法中添加self
参数:
worker()
另一个选项,因为它没有状态,你也可以创建一个类的单个实例并传递它的方法:
def worker(self, num):
"""thread worker function"""
print 'Worker:', num
return