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