猿问

python中线程开始报错的问题

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

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

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

pythonimport re
import threading
from  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 pickle
from  socket import *
from ClientReceive import *

client = socket(AF_INET, SOCK_DGRAM)                 #客户端数据报socket
text_contents = ''  
clientrec = ClientReceive(client, text_contents)                     #接收消息线程
clientrec.start()

qq_笑_17
浏览 695回答 1
1回答

繁星淼淼

你应该在覆写的 __init__ 函数里调用一下父类的 __init__: python def __init__(self, client, text_contents): super().__init__() self.client = client self.text_contents = text_contents 这在 Java 中是强制性的,在 Python 中则是灵活的。
随时随地看视频慕课网APP

相关分类

Python
我要回答