Bonjour,
Après avoir lu ce tuto : http://python.developpez.com/faq/?page=Thread
J'ai pu exécuter des morceaux de code dans des thread avec un timer.
Si j'ai bien compris la class threading.timer n'accepte que des fonctions comme "target".
Or je cherche à lancer des objets et des méthodes associées.
Actuellement j'ai du donc faire une fonction pour chaque objet que je veux lancer via la class MyTimer.
def fonction_1():
Objclass1 = class1()
Objclass1.methode
def fonction_2():
Objclass2 = class2()
Objclass2.methode
a = MyTimer(1.0, fonction_1)
a.start()
b = MyTimer(1.0, fonction_2)
b.start()
Etc .....
Cependant j'aimerais savoir si il n'est pas possible d'utiliser les arguments que l'on peut passer à la fonction pour avoir une seule fonction capable d'appeler n'importe quel objet.
J'ai déjà trouvé comment récupérer l'objet à partir des variables de la fonction puisque ceci fonctionne :
def fonction(Obj):
Objins = Obj
Objins.methode
a = MyTimer(1.0, fonction,[class1()])
a.start()
Cependant j'essaie désespérément de faire aussi passer la méthode et je n'y arrive pas, est ce possible ?
Dans un monde parfait j'ai tenté ça :
def fonction(Obj):
Objins = Obj[0].
Objins.Obj[1]
a = MyTimer(1.0, fonction,[class1(),"methode()"])
a.start()
a = MyTimer(5.0, fonction,[class2(),"methode()"])
a.start()
Mais bien évidement ça ne fonctionne pas.
Tout ça pour dire : Peut on passer dans les arguments d'une fonction un Obj et une de ses méthodes ?
Partager