Инструкция nonlocal
Данная инструкция, дает возможность изменять значение переменных внутри функций, которые как бы должны быть локальными, то есть использоваться только внутри функции.
Инструкция работает только когда мы вызываем ее внутри функции.
Пример правильного рабочего варианта:
def func():
nonlocal name1, name2, ..
Данная инструкция существует только в версии Python 3.0.
-----------------------------------------------------------------
Инструкции global и nonlocal несколько ограничивают
правила поиска:
• global вынуждает интерпретатор начинать поиск имен с области объемлющего модуля и позволяет присваивать переменным новые значения. Область поиска простирается вплоть до встроенной области видимости, если искомое имя не будет найдено в модуле, при этом операция присваивания значений глобальным именам всегда будет создавать или изменять переменные в области видимости модуля.
• nonlocal ограничивает область поиска областями видимости объемлющих
функций она требует, чтобы перечисленные в инструкции имена уже существовали, и позволяет присваивать им новые значения. В область поиска не входят глобальная и встроенная области видимости.
Инструкция работает только когда мы вызываем ее внутри функции.
Пример правильного рабочего варианта:
def func():
nonlocal name1, name2, ..
Данная инструкция существует только в версии Python 3.0.
-----------------------------------------------------------------
Инструкции global и nonlocal несколько ограничивают
правила поиска:
• global вынуждает интерпретатор начинать поиск имен с области объемлющего модуля и позволяет присваивать переменным новые значения. Область поиска простирается вплоть до встроенной области видимости, если искомое имя не будет найдено в модуле, при этом операция присваивания значений глобальным именам всегда будет создавать или изменять переменные в области видимости модуля.
• nonlocal ограничивает область поиска областями видимости объемлющих
функций она требует, чтобы перечисленные в инструкции имена уже существовали, и позволяет присваивать им новые значения. В область поиска не входят глобальная и встроенная области видимости.