Python继承初始化问题

时间:2018-01-17 09:02:30

标签: python inheritance

我在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个)

1 个答案:

答案 0 :(得分:3)

您报告的错误可能是因为基类是从错误路径导入的,无法在此重现。

也就是说,还有另一个(类似的)错误:重新定义run方法时,您必须传递self参数

class tcpThread(serverThread):
    def __init__(self, name):
        serverThread.__init__(self,name)

    def run(self):
        serverThread.run(self)

之后代码运行正常。请注意,只有在调用父方法时才需要重新定义run方法。