Uso della parola chiave “globale” in Python

| | |

Quello che ho capito leggendo la documentazione è che Python ha uno spazio dei nomi separato per le funzioni, e se voglio usare una variabile globale in quella funzione, devo usare global.

Sto usando Python 2.7 e ho provato questo piccolo test

>>> sub = ["0", "0", "0", "0"] >>> def getJoin(): ... return ".".join(sub) ... >>> getJoin() "0.0.0.0" 

Sembra che le cose funzionino bene anche senza global. Sono stato in grado di accedere alla variabile globale senza alcun problema.

Mi sfugge qualcosa? Inoltre, quanto segue è dalla documentazione di Python:

I nomi elencati in un'istruzione globale non devono essere definiti come parametri formali o in una destinazione di controllo del ciclo for, definizione di classe, definizione di funzione o istruzione import.

Sebbene per me i parametri formali e la definizione della classe abbiano senso, non sono in grado di comprendere la restrizione sul target di controllo del ciclo for e la definizione della funzione.