
Envoyé par
stalacta
Il y a un problème avec exec et global ?
Il n'y a pas de problème avec "exec".
Mais écrire:
exec("boutons.append(Button(Colonne"+str(colonne)+"),Image["+str(i)+"])")
équivaut à:
boutons.append(Button(globals()['Colonne%d' % i],Image[i])
Pourquoi écrire une instruction sous la forme d'une chaîne de caractères puis l'exécuter via exec alors qu'on peut l'écrire sous une forme directement "interprétable"?
Pourquoi polluer l'espace globals() avec les variables colonne1, colonne2, colonne3 alors qu'on peut créer une liste ou un dict "colonnes" et écrire:
boutons.append(Button(colonnes[i],Image[i])
Ces transformations coûtent autant d'appels de méthodes/fonctions et ce style n'améliore pas la lisibilité du code.
- W
Partager