2012-04-04 47 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