Курс 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
- Транспонирование 2D-массива с помощью zip
- Список и кортеж в Python
- Дизассемблирование Python кода
- Обмен переменными в Jupyter
- Срезы в Python
- Генераторные выражения и islice.
- Декоратор Ajax required
- Оператор морж в Python 3.8
- Работа с JSON в Python
- Работа с комплексными числами в Python
- Работа с файловой системой в Python
- Оператор Walrus в Python
- Удаление эмодзи с помощью pandas
- Принципы программирования
- Работа с многоуровневыми словарями в Python
- Подробная информация о %pinfo
- Асинхронное выполнение задач в процессах
- Уникальные значения из списка
- Получение обратного списка чисел
- Анонимные функции в Python
- Передача параметров в Python
- Печать в одной строке
- Построение графиков в терминале с bashplotlib
- Многопоточность и асинхронное программирование в Python
- Многострочные комментарии в Python
- Поиск с помощью регулярных выражений
- Сравнение def и lambda функций в Python
- Применение функции к списку
- Метод __iand__ для пользовательских классов
- Идентификатор объекта в Python
- Переопределение метода __or__()
- Python Translator: создание локальных переводчиков
- Аннотации типов в Python
- Оператор «not» в Python
- Объединение словарей в Python
- Оптимизация памяти с __slots__
- Метод pop() списка
- Изменение переменной в Python: nonlocal
- Инициализация объекта
- Работа с YAML в Python: PyYAML.
- UserList в Python: Описание и примеры использования
- Проверка списка: any() и all()
- Подсчет элементов в списке с Counter
- Функция zip() в Python
- Декораторы в Python















