Курс 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
- Группировка элементов Python
- Хранение переменных в Python.
- Инициализация объекта
- Аргумент по умолчанию
- Отладка кода
- Именованные кортежи в Python
- Обновление данных через PUT запрос
- Подписка на Kaspersky Team
- Навыки Python: строки, типы данных
- Игра «Угадывание чисел»
- Мониторинг работы программы Py-spy
- Многострочные комментарии в Python
- CSV строка разделение в Python
- Переворот строки с помощью срезов
- Аргументы *args и **kwargs
- Рекурсия для обращения строки
- Создание задания в Cron
- Сортировка элементов с OrderedDict
- Объединение итераторов
- Функции в одну строку
- Переопределение оператора % для объектов
- Python reversed() vs срез[::-1]
- Лямбда-функции для min/max
- Инициализация переменных
- Отделение звука от видео
- Работа с итераторами в Python
- Оператор is в Python
- Прокачанный трейсинг ошибок
- Глубокое копирование объектов
- Создание копии списка в Python
- Сравнение строк в Python
- Поиск наиболее частого элемента в списке
- Группы исключений в Python
- Генератор бросков кубиков
- Изменяемые и неизменяемые объекты
- Форматирование данных с помощью pprint
- Итераторы с потерямиZIP
- Тестирование с responses
- Метод enumerate() в Python
- Возврат нескольких значений
- Условные выражения в Python
- Профилирование с cProfile
- discard() — удаление элемента из множества
- Чтение и запись TOML-конфигов
- Создание обратного итератора















