passage d'une liste à une fonction avec exec()
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:
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_decode |
Code:
1 2 3
|
exec("myparam_decode = " + myparam_name + "_decode('" + mylistoflist + "')")
TypeError: cannot concatenate 'str' and 'list' objects |
J'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.
Merci par avance pour votre aide.