6.14 L'istruzione exec

exec_stmt  ::=  "exec" expression ["in" expression ["," expression]]
Potete scaricare il file originale (in Inglese) come testo.

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.