在一個文件中寫了以下的一個繼承了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) #客戶端數(shù)據(jù)報
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) #輸出到消息接收區(qū)域??
m = re.match("【系統(tǒng)消息】 服務(wù)器關(guān)閉", 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) #客戶端數(shù)據(jù)報socket
text_contents = ''
clientrec = ClientReceive(client, text_contents) #接收消息線程
clientrec.start()
1 回答

繁星淼淼
TA貢獻(xiàn)1775條經(jīng)驗 獲得超11個贊
你應(yīng)該在覆寫的 __init__
函數(shù)里調(diào)用一下父類的 __init__
:
python
def __init__(self, client, text_contents): super().__init__() self.client = client self.text_contents = text_contents
這在 Java 中是強制性的,在 Python 中則是靈活的。
添加回答
舉報
0/150
提交
取消