Для чего используется ключевое слово nonlocal?
Уровень: Senior
Ответ
nonlocal аналогично global, но для нелокальных переменных (замыканий). Оно позволяет внутри вложенной функции присваивать переменной из объемлющей функции (не из глобальной). Без nonlocal такое присваивание создало бы новую локальную переменную. Используя nonlocal x, мы говорим, что x – это переменная из внешней (но не глобальной) области видимости, и хотим изменить её. Пример: во вложенной функции можно пометить nonlocal counter, чтобы инкрементировать счётчик, определённый во внешней функции.