Z lektury dokumentacji rozumiem, że Python ma oddzielną przestrzeń nazw dla funkcji, a jeśli chcę użyć zmiennej globalnej w tej funkcji, muszę użyć global
.
Używam Pythona 2.7 i wypróbowałem ten mały test
>>> 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 globalnego
.Udało mi się bez problemu uzyskać dostęp do zmiennej globalnej.
Czy czegoś mi brakuje?Ponadto następujące informacje pochodzą z dokumentacji Pythona:
Nazwy wymienione w instrukcji global nie mogą być definiowane jako parametry formalne lub w celu sterowania pętlą for, definicji klasy, definicji funkcji lub instrukcji import.
Podczas gdy parametry formalne i definicja klasy mają dla mnie sens, nie jestem w stanie zrozumieć ograniczeń dotyczących celu sterowania pętlą i definicji funkcji.