2014-02-18 49 views
0

我一般對編程不熟悉,我需要一些幫助來訪問先前創建的Class實例。我做了一些搜索,但我找不到任何東西......也許只是因爲我不應該這樣做。Python3訪問以前創建的對象

for s in servers: 
    c = rconprotocol.Rcon(s[0], s[2],s[1]) 
    t = threading.Thread(target=c.connect) 
    t.start() 
    c.messengers(allmessages, 10) 

現在,我能做些什麼,如果我要呼籲「C」的功能? 謝謝,雨果

回答

0

您正在創建幾個不同的對象,您在進行循環時簡要地命名爲c。如果你希望能夠訪問更多的數據,你需要將它們保存在不會被覆蓋的地方。最好的方法可能是使用一個列表來保存連續的值,但根據您的具體需要,另一個數據結構也可能有意義(例如,使用字典可以通過特定鍵查找每個值)。

這裏有一個簡單的調整,以你目前的代碼,將保存在列表中的c值:

c_list = [] 
for s in servers: 
    c = rconprotocol.Rcon(s[0], s[2],s[1]) 
    t = threading.Thread(target=c.connect) 
    t.start() 
    c.messengers(allmessages, 10) 
    c_list.append(c) 

之後,您可以訪問任何c值與c_list[index],或用for c in c_list迭代。

稍微更Python版本可能會使用列表理解,而不是append創建列表(這也說明了一個遍歷c_list後一個可能的樣子):

c_list = [rconprotocol.Rcon(s[0], s[2],s[1]) for s in servers] 
for c in c_list: 
    t = threading.Thread(target=c.connect) 
    t.start() 
    c.messengers(allmessages, 10) 
相關問題