Курс Python → Изменение переменной в Python: nonlocal
Для изменения переменной внешней области видимости в Python можно использовать ключевое слово nonlocal. Это позволяет ссылаться на переменные, определенные в ближайшей внешней области видимости, исключая глобальную. Таким образом, можно изменять переменные, которые находятся в области видимости функции, вложенной в другую функцию.
Например, рассмотрим следующий код:
def outer_func():
a = 10
def inner_func():
nonlocal a
a = 20
inner_func()
print(a)
outer_func()
В данном примере функция inner_func изменяет значение переменной a, которая находится в области видимости функции outer_func. После вызова inner_func значение переменной a становится равным 20, и при выводе на экран получаем именно это значение.
Ключевые слова global и nonlocal сообщают интерпретатору Python о том, что необходимо использовать переменные из соответствующих внешних областей видимости, а не создавать новые переменные с такими же именами.
Использование nonlocal может быть полезно при работе с вложенными функциями, когда требуется изменить значение переменной из внешней области видимости. Это помогает более гибко управлять переменными и избежать создания лишних переменных внутри функций.
Другие уроки курса "Python"
- Работа с пользовательским вводом
- Глобальные переменные в Python
- Метод rmatmul для обратного матричного умножения
- Кортеж в Python: создание и использование
- Печать календаря в Python
- Работа с временем в Python
- Модуль os в Python: работа с файлами
- Подсчет элементов с помощью Counter
- Открытие и редактирование скриптов Python
- Иерархия классов в Python
- Подсчет элементов в Python
- Декораторы в Python
- Форматирование строк в Python
- Работа с комплексными числами
- Работа с файлами в Python
- Подробная информация о %pinfo
- Метод ifloordiv для пользовательских классов
- Модуль future Python
- Непрерывная проверка в Python
- ChainMap.new_child() — добавление нового словаря
- Создание новых списков
- Вычисление натурального логарифма в NumPy
- Создание и использование модулей в Python
- Обработка ошибок в Python
- Атрибуты класса и экземпляра в Python
- Кортежи в Python: особенности и преимущества
- Оптимизация гиперпараметров в Python
- Изменение логики работы с временем
- Функция format() в Python
- Список переменных в Python
- Управление импортом в Python
- Retrying в Python: повторные вызовы
- Тип CodeType в Python.
- Defaultdict в Python
- Возвращение нескольких значений
- Перебор элементов списка в Python
- Получение атрибутов и методов класса
- Анализ текста на русском языке с помощью Pymystem3
- Искажение имен в Python
- Распаковка с оператором *
- Оператор space-invader
- Делегирование в Python
- Группы исключений в Python















