Использование ключевого слова «global» в Python

Из документации я понял, что Python имеет отдельное пространство имен для функций, и если я хочу использовать глобальную переменную в этой функции, Мне нужно использовать global .

Я использую Python 2.7 и попробовал этот небольшой тест

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

Кажется, все работает нормально даже без global . Мне удалось получить доступ к глобальной переменной без каких-либо проблем.

Я что-нибудь упустил? Кроме того, следующее из документации Python:

Имена, перечисленные в глобальном операторе нельзя определять как формальный параметры или в цикле управления цель, определение класса, функция определение или оператор импорта.

Хотя формальные параметры и определение класса имеют для меня смысл, я не могу понять ограничение на цель управления циклом и определение функции.

279
задан Karel Vlk 17 March 2016 в 03:26
поделиться