Курс Python → Мощь вложенных функций в Python
В Python вложенные функции могут быть мощным инструментом для организации кода и повышения его читаемости. Когда функция определена внутри другой функции, она может использовать переменные из области видимости внешней функции. Эти переменные образуют замыкание (closure), что позволяет сохранять состояние функции между вызовами.
Однако, если мы хотим изменить значение переменной, находящейся в области видимости объемлющей функции, нам нужно использовать ключевое слово nonlocal. Это позволит нам явно указать, что переменная не является локальной, но и не глобальной, и мы хотим изменить ее значение в объемлющей функции.
def outer_function():
x = 10
def inner_function():
nonlocal x
x += 5
print(x)
inner_function()
outer_function()
В этом примере мы объявляем переменную x во внешней функции outer_function и изменяем ее значение во вложенной функции inner_function с помощью nonlocal. При вызове outer_function будет напечатано значение 15, так как x было увеличено на 5.
Использование nonlocal позволяет нам более гибко управлять переменными во вложенных функциях, делая код более понятным и поддерживаемым. Однако, следует помнить, что избыточное использование nonlocal может привести к сложностям в понимании кода, поэтому его следует использовать с умом.
Другие уроки курса "Python"
- Progress с библиотекой tqdm
- Функции с дополнением
- Сглаживание списка
- Фильтрация списка чисел
- Оператор is в Python
- Проверка дубликатов в Python
- Работа с deque из collections
- Удаление элементов из списка в Python
- Создание копии списка в Python
- Подписка на Kaspersky Team
- Метод сравнения объектов в Python
- Numpy: объединение массивов
- Красивый вывод списка
- Автоматизация скриптов на AWS Lightsail.
- Очистка строки в Python
- Использование модуля math
- Активация Matplotlib в Jupyter
- Инверсия списков и строк в Python
- Поиск email
- Операции с числами в Python
- Отладка утечек памяти в Python
- Функция zip() в Python
- Метод get для словарей
- Работа с словарями в Python
- Метод Self в Python
- Измерение времени выполнения
- Анонимные функции в Python
- Анализ кода — Python
- Нахождение отличий в списках
- Генераторы списков в Python
- Метод rmatmul для обратного матричного умножения
- Обновление данных через PUT запрос
- Поиск индексов подстроки
- Обработка аргументов Python
- Функции в Python
- Тестирование с unittest
- Установка и использование библиотеки google
- Новшества Flask 2.0
- Генерация резюме в Gensim
- Открытие, чтение и закрытие файла
- Получение текущей директории
- Итераторы в Python
- Извлечение аудио из видео















