我覺得我的網絡編程,線程和麪向對象的技能。但我遇到了一個問題。 我有一個名爲IRC的類和一個名爲Pong的類。我想使用IRC來完成連接到服務器,發送消息等內容。我想在後臺使用Pong作爲線程,檢查包含「PING」的消息。在Python中的兩個類之間共享變量
class IRC:
def Connect(self):
try:
HOST = sys.argv[1]
PORT = sys.argv[2]
except IndexError:
print "Usage: "+sys.argv[0]+" [server] [port]\n"
sys.exit(1)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
class Pong(threading.Thread):
def Pong(self):
while 1:
IRC.s.send("Test") # IRC has no attribute 's'
記住上面的代碼簡化,僅用於測試目的,我的問題是如何在一個類中使用變量從另一個類。變量s
在IRC中被聲明和定義,但在Pong中也是需要的。 解釋器抱怨IRC類沒有屬性'(我試着先用一個示例變量調用Connect()來查看它是否工作,但它沒有)。
我該如何解決這個問題?在線程和麪向對象方面,我是新手。
在此先感謝!
確保你真正的屬性添加到您的對象。現在,'s'被定義爲一個局部變量。也許你想把's'定義爲:'self.s = socket.socket(...)'? –
@JeffMercado感謝您的評論。我只是試圖給變量添加'self',但它沒有工作。 – Griffin
那麼問題最終是你應該創建你的IRC類的實例,但你試圖訪問一個類變量(做'IRC.s')。我強烈建議你在繼續之前,先回顧一下基本的OOP原則和Python。 –