Из прочтения документации я понимаю, что в Python есть отдельное пространство имен для функций, и если я хочу использовать глобальную переменную в этой функции, мне нужно ее использовать global
.
Я использую Python 2.7, и я попробовал этот маленький тест
>>> sub = ['0', '0', '0', '0']
>>> def getJoin():
... return '.'.join(sub)
...
>>> getJoin()
'0.0.0.0'
Кажется, все работает нормально, даже без global
. Я смог получить доступ к глобальной переменной без каких-либо проблем.
Я что-то упустил? Кроме того, следующее из документации по Python:
Имена, перечисленные в глобальном операторе, не должны быть определены как формальные параметры или как цель управления циклом for, определение класса, определение функции или оператор импорта.
В то время как формальные параметры и определение класса имеют смысл для меня, я не могу понять ограничение для цели управления циклом и определения функции.