Bonjour,
Je souhaite envoyer une liste comme argument à une fonction (jusque là tout va bien) mais le problème est que je dois appeler la fonction par exec(....).
Dans ce cas evidement, il y a confusion des genres entre la liste et exec qui ne souhaite que des str pour construire mon appel.
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 def param1_decode(mylistoflist=[]): mylistoflist[0][1] = mylistoflist[0][1].upper return mylistoflist[0][1] mylistoflist = [[32, 'service_type', '00', 'Default'], [34, 'source_addr_ton', '0x00', 'Unknown']] myparamlist = [("param1",6,"coctetstring"),("param2",1,"integer"),("param3",1,"integer")] for x in range(len(myparamlist)): myparam_decode = "" myparam_name = myparamlist[x][0] myparam_length = myparamlist[x][1] myparam_type = myparamlist[x][2] exec("myparam_decode = " + myparam_name + "_decode('" + mylistoflist + "')") print myparam_decodeJ'ai essayé avec l'utilisation de la liste en variable globale, celà fonctionne sauf dans un code mod_python (avec formulaires, ...) où les variables globales restent inutilisables.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 exec("myparam_decode = " + myparam_name + "_decode('" + mylistoflist + "')") TypeError: cannot concatenate 'str' and 'list' objects
Merci par avance pour votre aide.
Partager