ThreadPoolExecutor有太多的位置参数

时间:2015-04-10 13:42:09

标签: python

我在下面的课程中有一个concurrent.futures.ThreadPoolExecutor

class X(object):
    def __init__(self):
        self.__pool = ThreadPoolExecutor(max_workers=4)

    def add_callback(self, k):
        fut = self.__pool.submit(self.fn, self, k)
        print(str(fut.exception()))

    def fn(self, k):
        print(k)

如果我执行类似

的内容
x_object = X()
x_object.add_callback(5) 

我得到以下异常:

fn() takes 2 positional arguments but 3 were given

第3个参数来自于线程池执行程序是否尝试使用?{/ p>调用fn()

1 个答案:

答案 0 :(得分:1)

只需

    fut = self.__pool.submit(self.fn, k)

就够了。 self不能成为submit的参数。