2014-02-18 5 views
0

프로그래밍에 익숙하지 않으므로 이전에 만든 클래스 인스턴스에 액세스 할 때 도움이 필요합니다. 그래서 검색을했는데 아무 것도 못 찾았습니다. 아마 그렇게하려고해서는 안될 수도 있습니다.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_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_list[index]으로 c 값에 액세스하거나 for c in c_list으로 반복하여 수 있습니다

여기 목록에 c 값을 저장합니다 현재 코드에 대한 사소한 조정합니다.

A (이것은 또한 c_list 이상 루프 나중에 하나가 어떻게 보이는지 보여줍니다) 목록을 작성하는 대신 append보다 지능형리스트를 사용할 수 있습니다 약간 더 파이썬 버전 :

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) 
관련 문제