-1
class TCPHandler(socketserver.BaseRequestHandler):
def setup(self):
self.packer = MessagePacker.MessagePacker()
self.parser = MessageParser.MessageParser()
def handle(self):
self.setup()
while True:
pass
#blabla...
class FroggerServer(threading.Thread):
def init(self,ip,nickname):
self.serverIp = ip
self.serverPort = 10000
self.nickname = nickname
self.tcpHandler = TCPHandler
tuple = (self.serverIp,self.serverPort)
self.__serverSocket = socketserver.TCPServer(tulpe,self.tcpHandler)
def run(self):
self.__serverSocket.serve_forever()
我用套接字然後釋放TCPHandler。 問題是在TCPHandler中找不到'packer','parser'。爲什麼它無法在類中找到對象(python)
對於eaxmple,像這樣。
server = FroggerServer()
server.init(ip,nickname)
server.start()
server.parser.putMessage(43) #oops. not exist object parser in server object
我認爲存在self.tcpHandler = TCPHandler
問題,如果我不使用這種方式,我怎樣才能在外部訪問的對象在TCPHandler該類
'server'沒有'parser'屬性。 'sever'確實有你可能想要使用的'tcpHandler'屬性。 –
server.tcpHandler.parser.putMessage(43)將起作用,但下面的@WasiAhmad答案最適合你。 – aslavkin
首先我將'self.tcpHandler = TCPHandler'修正爲'self.tcpHandler = TCPHandler()'。然後我按照你的說法放置構造函數。 thansk你的評論(_ _) –