我在serverThread.py文件中有线程类,如下所示:
import threading
class serverThread(threading.Thread):
def __init__(self, name):
try:
threading.Thread.__init__(self)
self.name = name
except:
exit()
def run(self):
print("Hello")
我创建了一个新项目。我想继承上面的类,如下所示:
import serverThread
class tcpThread(serverThread):
def __init__(self, name):
serverThread.__init__(self,name)
def run():
serverThread.run(self)
t1 = tcpThread("Tcp Server")
t1.start()
当我运行此脚本时,给出了错误:
错误: 回溯(最近一次调用最后一次):文件" serverTcpThread.py",第4行,< module> class tcpThread(serverThread):TypeError:module .__ init __()最多需要2个参数(给定3个)
答案 0 :(得分:3)
您报告的错误可能是因为基类是从错误路径导入的,无法在此重现。
也就是说,还有另一个(类似的)错误:重新定义run
方法时,您必须传递self
参数
class tcpThread(serverThread):
def __init__(self, name):
serverThread.__init__(self,name)
def run(self):
serverThread.run(self)
之后代码运行正常。请注意,只有在调用父方法时才需要重新定义run
方法。