Python线程报错AttributeError怎么解决,,在一个文件中写了以下的一


在一个文件中写了以下的一个继承了thread的类,在后面另一个文件里引用它,会报错:

AttributeError: 'ClientReceive' object has no attribute '_initialized'

想问问是怎么回事?怎么解决?

pythonimport reimport threadingfrom  socket import *class ClientReceive(threading.Thread):        client = socket(AF_INET, SOCK_DGRAM)               #客户端数据报        def __init__(self, client, text_contents):                self.client = client                self.text_contents = text_contents        def run(self):                while true:                        try:                                self.recvStr = client.recvfrom(bufsize)                                 IsCon = true                 #connectB.setEnabled(false);                                if self.recvStr == "exit":                  #退出程序                                        exit()                                else:                                        listbox.insert(END, self.recvStr)       #输出到消息接收区域??                                        m = re.match("【系统消息】 服务器关闭", self.recvStr)                                        if m:                                                IsCon = false                        except:                                pass                                       

从另一个文件里写了

pythonfrom tkinter import *import picklefrom  socket import *from ClientReceive import *client = socket(AF_INET, SOCK_DGRAM)                 #客户端数据报sockettext_contents = ''  clientrec = ClientReceive(client, text_contents)                     #接收消息线程clientrec.start()

你应该在覆写的 __init__ 函数里调用一下父类的 __init__:

python        def __init__(self, client, text_contents):                super().__init__()                self.client = client                self.text_contents = text_contents

这在 Java 中是强制性的,在 Python 中则是灵活的。

编橙之家文章,

评论关闭