Python et les Threads

Résolu
Utilisateur anonyme -  
 Utilisateur anonyme -
Salut,

J'envisage de créer une nouvelle fonctionnalité pour un plugin pour un jeu.
Il se trouve que ce plugin doit accéder à internet, ce qui risque de stopper nette le jeu le temps que la connexion se passe (ce qui peut prendre quelques centisecondes, voir quelques secondes en cas de timeout).

Je pense donc devoir utiliser les Threads pour éviter de gêner le jeu.
Le problème, c'est que je m'y prend mal apparemment.

J'ai une erreur SyntaxError à la ligne def __init__(self, p):

Voici le code :

Import urllib, urllib2
from Threading import Thread  

class report(Thread):  
 def __init__(self, p)  
  Thread.__init__(self)  
  self.p = p  
   
 def run(self)  
  p = self.p  
  url = 'mon_url'  
  values = {'i':str(p['info1']), 'l':str(p['info2'])}  
  data = urllib.urlencode(values)  
  req = urllib2.Request(url, data)  
  f = urllib2.urlopen(req)  

p = {}  
p['info1'] = "Test"  
p['info2'] = "Test2"  
report(p)


Quelqu'un pourrait me dire ce qui ne va pas s'il vous plait ?
Merci d'avance.

Musicalement,
DJ Fire-Bl@ck.

1 réponse

sebsauvage Messages postés 32893 Date d'inscription   Statut Modérateur Dernière intervention   15 662
 
def run(self)  

est incorrect: il faut mettre deux points après:


def run(self):  
1
Utilisateur anonyme
 
Merci beaucoup.
Tu vas peut être rire mais j'avais deux threads à faire. Quand j'ai fait le 2ème, j'ai commis la même erreur ... je crois que je vais aller me coucher. ;)

Désolé de t'avoir fait déplacé pour ça :S. Bonne journée !

Edit :
Script corrigé :

Import urllib, urllib2
from Threading import Thread  

class report(Thread):  
 def __init__(self, p) :
  Thread.__init__(self)  
  self.p = p 
  self.run()
   
 def run(self) :
  p = self.p  
  url = 'mon_url'  
  values = {'i':str(p['info1']), 'l':str(p['info2'])}  
  data = urllib.urlencode(values)  
  req = urllib2.Request(url, data)  
  f = urllib2.urlopen(req)  

p = {}  
p['info1'] = "Test"  
p['info2'] = "Test2"  
report(p)
0