exec_stmt |
::= | "exec" expression
["in" expression ["," expression]] |
Questa istruzione supporta l'esecuzione dinamica di codice Python. La prima espressione dovrebbe valutare se sia una stringa, un file oggetto aperto o un oggetto codice. Se � una stringa, viene analizzata come un insieme di istruzioni Python che quindi vanno eseguite (a meno che non avvengano errori di esecuzione). Se � un file aperto, viene analizzato prima della fine del file EOF ed eseguito. Se � un oggetto codice viene semplicemente eseguito.
In tutti i casi, se le parti facoltative vengono omesse, il codice viene eseguito nella forma corrente. Se viene specificata solo la prima espressione dopo in, dovrebbe essere un dizionario, che verr� usato sia per la variabili globali che per quelle locali. Se sono date due espressioni, devono essere entrambe dizionari e saranno usati rispettivamente per la variabili globali e locali.
Come effetto collaterale, un'implementazione pu� inserire ulteriori
chiavi nei dizionari forniti oltre le loro corrispondenze ai nomi di
variabile impostate dal codice eseguito. Per esempio,
l'implementazione corrente pu� aggiungere un riferimento al dizionario
del modulo built-in __builtin__ sotto la chiave
__builtins__ (!).
Suggerimento per i programmatori: la valutazione dinamica delle espressioni viene supportata dalla funzione built-in eval(). Le funzioni built-in globals() e locals() restituiscono rispettivamente il corrente dizionario globale e locale, che pu� essere utile per passare valori nell'uso di exec.
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.