Syntaxe
exec or_expr [in expression ["," expression]]
|
Paramètres
Nom |
Description |
or_expr |
Ce paramètre permet d'indiquer une chaîne de caractères, un objet de fichier ouvert ou un objet de code à évaluer |
or_expr |
Ce paramètre permet d'indiquer les expressions à appliquer. |
Description
Ce mot réservé permet d'effectuer une exécution dynamique d'un code Python.
La première expression doit évaluer une chaîne de caractères, un objet de fichier ouvert ou un objet de code.
S'il s'agit d'une chaîne de caractères, la chaîne de caractères est analysée comme une suite d'instructions Python étant ensuite exécutée (sauf si une erreur de syntaxe se produit).
S'il s'agit d'un fichier ouvert, le fichier est analysé jusqu'à ce qu'un EOF soit exécuté.
S'il s'agit d'un objet de code, alors il est simplement exécuté.
Dans tous les cas, le code exécuté devrait être valide comme entrée de fichier.
Remarques
- Les mots réservés return et yield ne peuvent pas être utilisées en dehors des définitions de fonctions même dans le contexte du code transmis à l'instruction exec.
- Si les paramètres facultatives sont omises, le code est exécuté dans la portée couirante.
Si seule la première expression après «in» est spécifiée, il s'agira d'un dictionnaire, allant être utilisé pour les variables globales et locales. Si deux expressions sont spécifiés, elles seront respectivement utilisées pour les variables globales et locales. S'il est fourni, les locales peuvent être n'importe quel objet cartographié.
- Comme effet secondaire, une intégration peut insérer des clefs supplémentaires dans les dictionnaires spécifiés en plus de celles correspondant aux noms de variable définis par le code exécuté. Ainsi, par exemple, l'intégration actuelle peut ajouter une référence au dictionnaire du module intégré __builtin__ sous la clef __builtins__(!).
- L'évaluation dynamique des expressions est également supportée par la fonction eval(). Les fonctions globals() et locals()
renvoient respectivement le dictionnaire global et local courant, ceux-ci soit très utile avec exec.
Dernière mise à jour : Mercredi, le 16 mai 2018