首页 > 解决方案 > 我的类从 Thread 继承所有参数(带有守护进程的 TypeError)

问题描述

我写了一个类,并希望它继承线程的所有参数。

class ThreadExtension(threading.Thread):

    def __init__(self, group=None, target=None, name=None, args=(), kwargs={}, *, daemon=None):
        threading.Thread.__init__(self, group, target, name, args, kwargs, daemon)

    def run(self):
        if self._target is not None:
            self.extension.result = self._target(*self._args, **self._kwargs)

但我有错误:

TypeError: __init__() takes from 1 to 6 positional arguments but 7 were given

我很困惑。daemon如果我从中删除__init__- 一切都很好。为什么我不能添加daemon

标签: python

解决方案


之后的任何参数*都必须列为关键字参数。所以你必须调用__init__如下

threading.Thread.__init__(self, group, target, name, args, kwargs, daemon=daemon)

推荐阅读