2011-06-20 32 views
0
class Downloader(threading.Thread): 
    def __init__(self, priority_level, output_function): 
     self.IDs = self.load_IDs(priority_level) 
     self.sleep_interval = self.gen_sleep(priority_level) 
     self.output = output_function 
     self.name = '[Downloader::%s]'%(str(priority_level)) 

     self.output('[Downloader] New downloader created (prio: %s)!'%(str(priority_level)) 

    def load_IDs(self, prio): 
     filename = 'id_prio%s.data'%str(prio) 
     ID_file = open(filename, 'r') 
     ID_data = ID_file.read() 
     ID_file.close() 

     temp = open(filename, 'w') 
     temp.write('\n') 
     temp.close() 

     IDs = [line.split(':') for line in ID_data.split('\n') if ID != ''] 

     return IDs 

[MORE CODE...] 

当由于某种原因,我得到以下错误:错误定义的Python类(线程)

File "pastebin_rip_2.py", line 40 
    def load_IDs(self, prio): 
    ^
SyntaxError: invalid syntax 

我在做什么错?有一段时间我认为这个问题可能是init,因为当我将它移到Downloader类的末尾时它工作正常(这没有意义?)。那么,Downloader呢,无论如何。相反,我在Downloader之后收到一条抱怨这个班的消息。

我真的没有看到有什么问题。帮帮我?

(全部代码:http://snipt.org/xkky)

回答

4

我想你错过了这条线关闭括号:

self.output('[Downloader] New downloader created (prio: %s)!'%(str(priority_level)) 
+0

这(和失踪':')是在'SyntaxError'之后寻找什么? –

+0

这有点尴尬......谢谢! – Touzen

+0

你也忘记在init方法中调用超类的初始化方法:'threading.Thread .__ init __(self)' – codewarrior