Z lektury dokumentacji rozumiem, że Python ma osobną przestrzeń nazw dla funkcji i jeśli chcę użyć zmiennej globalnej w tej funkcji, muszę jej użyć global
.
Używam Python 2.7 i próbowałem tego małego testu
>>> sub = ['0', '0', '0', '0']
>>> def getJoin():
... return '.'.join(sub)
...
>>> getJoin()
'0.0.0.0'
Wygląda na to, że wszystko działa dobrze nawet bez global
. Byłem w stanie uzyskać dostęp do zmiennej globalnej bez żadnego problemu.
Czy coś mi brakuje? Ponadto, z dokumentacji Pythona:
Nazw wymienionych w instrukcji globalnej nie wolno definiować jako parametrów formalnych ani w celu kontroli pętli for, definicji klasy, definicji funkcji lub instrukcji importu.
Chociaż formalne parametry i definicja klasy mają dla mnie sens, nie jestem w stanie zrozumieć ograniczenia dotyczącego celu kontroli pętli i definicji funkcji.