2012-04-04 49 views
2

我一直在學習使用Python開啓和關閉一段時間,而我目前的項目是一個使用wxPython編寫的GUI的下載管理器。我有DownloadThreads,從threading.Thread繼承,我實例化的變化量:訪問未綁定到Python中的變量的對象

for i in xrange(self.thread_count): 
    DownloadThread(self.queue, self.status, self.save_dir, i).start() 

因爲線程我將要創建的數量是不固定的,我不能指定DownloadThread對象到變量,所以我看不到如何訪問他們的方法,如x.isAlive()。我想過動態創建變量,但關於這一點似乎是一個非常糟糕的主意。我將如何去訪問這些「匿名」對象(術語?),還是我以錯誤的方式去討論?感謝您的閱讀,如果這真的很簡單/明顯,我們深表歉意。

+0

要訪問你要約束他們的對象,它在每一個我知道的語言一樣。匿名的東西是一次性使用並扔掉。 – Dikei 2012-04-04 10:52:24

回答

3

最簡單的事情是將所有的線程保持在一個列表:

self.threads = [] 
for i in xrange(self.thread_count): 
    self.threads.append(DownloadThread(self.queue, self.status, self.save_dir, i)) 
    self.threads[i].start() 
+0

我真的不覺得列表理解更清晰。 – 2012-04-04 10:53:43

+0

非常感謝,這是我之後的事情。 – muskrat 2012-04-04 10:54:23

+0

@Lattyware ok,使用*常規*迭代語法 – kojiro 2012-04-04 10:56:19