Je n'ai pu passer mon dernier caprice a cause d'un argument qui ne voulait pas se mettre en string... Explications:
-Récupérer un nom de méthode par une Listbox.
-Donner l'argument a celle-çi par un Entry.
-Je cherchais a exécuter une méthode sans l'appeler directement par le biais de exec (que je ne connait pas du tout car l'oeuvre de T.Ziadé liste toutes les primitives mais pas les "directives", apparaissant en noire dans Kate: print, assert et nouvellement exec, ce qui fait un trou noire dans ma formation...)
Voici un pseudo code pour illuster ce que je voulais faire, comprenne qui peut:
Le traceback fait apparaitre que l'argument de la methode n'est pas de type string avec mon exec code, j'ai pas pu passer mon caprice...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 class Executer() : def __init__(self) : self.liste_methode=['methode_1', 'methode_2', 'methode_3'] self.dict_args={} def add_args(self) : if Listbox.selection_get() in self.liste_methode : self.dict_args[Listbox.selection_get()]=Entry.get() def run_methode(self) : for values in self.liste_methode : if values in dir(my_instance) : exec('my_instance.'+values+'('+str(self.dict_args.get(values))+')') class Contain_methodes() : def methode_1(self, a) : print 'methode_1 run' def methode_2(self, a) : print 'methode_2 run' def methode_3(self, a) : print 'methode_3 run' my_instance=Contain_methodes() executer=Executer()
Le but est d'améliorer ma technique de programmation donc j'essai des nouvelles maniére de coder.
Merci de commenter ou de résoudre ce que je cherchais a faire, j'ai bien sur choisis l'option d'une structure conditionnelle qui exécute en appelant les méthodes comme plan B.
Si quelqu'un connait un lien vers la liste de ce que j'appelle une directive (comme print, assert, exec...), il serai sympa de mettre un lien.
Merci de vos réponses et bon python a vous.
Partager