global_stmt |
::= | "global" identifier ("," identifier)* |
L'istruzione global è un'istruzione che viene mantenuta per l'intero blocco di codice corrente. Questo significa che gli identificatori elencati verranno interpretati come globali. Dovrebbe essere impossible assegnare una variabile globale senza global, sebbene le variabili libere possano fare riferimento a globalità senza essere state dichiarate global.
I nomi elencati in un'istruzione global non devono essere usati nello stesso blocco di codice testuale che precede quell'istruzione global.
I nomi elencati nell'istruzione global non devono essere definiti come parametri formali o in un ciclo for per il controllo dell'obiettivo, in una definizione di classe (class), in una definizione di funzione, o un'istruzione import.
(La corrente implementazione non ha le ultime due restrizioni, ma i programmi non devono abusare di questa libertà, come future implementazioni potrebbero imporre o cambiare silenziosamente il significato del programma.)
Nota per i programmatori: global è una direttiva per il parser. Questo applica solo il codice analizzato nello stesso istante dell'istruzione global. In particolare, un'istruzione global contenuta in un'istruzione exec non influenza il blocco di codice contenente l'istruzione exec, ed il codice contenuto nell'istruzione exec non viene influenzato dall'istruzione global nel codice che contiene l'istruzione exec. Lo stesso principio si applica alle funzioni eval(), execfile() e compile().
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.