2011-06-20 10 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 

私が間違っているのは何を?私は、問題が、を配置している可能性があると考えました。なぜなら、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