我正在尝试使用池映射从同一类中的另一个函数调用类中的函数
pool = Pool(num_cores)
res = pool.map(self.get_data_vector())
该函数除了 self 之外没有任何参数,我收到此错误
TypeError: map() missing 1 required positional argument: 'iterable'
这就是函数
def get_data_vector(self):
编辑:
我缺少要映射的变量 self.doc_ids,它是一个列表。
我现在这样调用它
res = pool.map(__class__.get_data_vector,(self,self.doc_ids))
函数应该这样调用
def get_data_vector(self, doc_id):
但错误现在改为
TypeError: get_data_vector() missing 1 required positional argument: 'doc_id'
最佳答案
我假设 self.doc_ids 是一个列表或其他可迭代的东西。
那么你应该能够使用这个:
res = pool.map(self.get_data_vector, self.doc_ids)
这意味着将使用两个参数调用get_data_vector
。第一个是 self
,作为绑定(bind)方法,第二个是可迭代 self.doc_ids
的元素。
关于python - 使用 pool.map 使用一个参数和 self : TypeError: map() missing 1 required positional argument: 'iterable' 调用类中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52671923/