python - 使用 pool.map 使用一个参数和 self : TypeError: map() missing 1 required positional argument: 'iterable' 调用类中的函数

标签 python threadpool

我正在尝试使用池映射从同一类中的另一个函数调用类中的函数

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/

相关文章:

C#、IAsyncResult 和线程池

java - 了解 Apache Tomcat 6.0.26 的线程转储

python - Kivy - 动态文本标记?

python - 当您不知道有多少循环需要嵌套时,如何处理嵌套循环(python 3.4)?

c++ - 线程池(大概)锁定条件变量和互斥量的问题

c# - 使用线程池时如何判断线程何时完成?

python - 从另一个线程关闭挂起的 zmq 套接字

python - 为什么在更新字典时得到 None?

python - 用于 Reed-Solomon 解码的 Berlekamp-Massey 勘误表(删除+错误)

java - Android线程池管理多个蓝牙处理线程?