Курс 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"
- Установка и использование Logzero
- Операторы присваивания в Python
- Константы в модуле cmath
- Метод __ixor__ для побитового исключающего ИЛИ
- Копирование и вставка текста в Python
- Изменения в обработке логических значений
- Настройка Cron
- Python OrderedDict и fromkeys() — работа с словарями
- Измерение времени выполнения кода
- Удаление элементов из списка
- Проверка дубликатов в Python
- Генерация случайных чисел в Python
- Декодирование байтов в строку
- Оператор «and» в Python
- Функция с *args.
- Особенности запятых в Python
- Подсчет количества элементов в списке
- Округление в Python
- Создание файла с проверкой ошибки
- Сортировка с параметром key
- Принцип одной функции
- Применение функции к списку
- Множественное назначение в Python
- Проверка подстроки в строке с помощью in
- Перезапуск ячейки в Jupyter Notebook с dostoevsky
- Numpy: разбиение массивов
- Оформление кода по PEP 8
- Обработка исключений в Python
- Форматирование строк с помощью f-строк
- Создание объекта timedelta
- Проверка памяти объекта
- Добавление элементов в список: append() vs extend()
- Отладка в командной строке
- Ноутбуки AMD Ryzen ™ 4000: мощность и эффективность
- Создание задания в Cron
- Очистка данных с помощью pandas
- Поиск индекса элемента
- Функция rsplit() в Python
- Лямбда-функции для min/max
- Создание словаря через dict comprehension
- Преобразование многоуровневого словаря
- Метод get для словарей
- Возвращение нескольких значений
- Оператор is в Python
- Установка random seed в Python















