2011-06-20 3 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...] 

Pour une raison quelconque, je reçois l'erreur suivante:Erreur lors de la définition de classe python (filetage)

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

Qu'est-ce que je fais mal? pour un moment j'ai considéré le problème pourrait avoir été le placement de init, parce que quand je l'ai déplacé à la fin de la classe Downloader il a bien fonctionné (ce qui n'a pas de sens?). Eh bien, Downloader a fait, de toute façon. Au lieu de cela, j'ai reçu un message concernant la classe après Downloader.

Je ne vois vraiment pas ce qui ne va pas. Aidez-moi?

(code entier: http://snipt.org/xkky)

Répondre

4

Je pense que vous manquez un paren de clôture à cette ligne:

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

Ce (et manquant ':') est ce que vous cherchez après un 'SyntaxError' –

+0

C'est un peu gênant ... Merci! – Touzen

+0

Vous oubliez également d'appeler l'initialiseur de la superclasse dans votre méthode init: 'threading.Thread .__ init __ (self)' – codewarrior

Questions connexes