Курс Python → Работа с областями видимости переменных
Одним из ключевых моментов в программировании на Python является понимание работы с областями видимости переменных. В Python существует возможность использовать ключевое слово nonlocal для работы с переменными во вложенных функциях. Когда у нас есть внешняя функция, внутри которой определена внутренняя функция, и нам необходимо изменить значение переменной из внутренней функции на уровне внешней функции, мы можем использовать nonlocal.
Для примера рассмотрим следующий код:
def func1():
enclosing = 0
def func2():
nonlocal enclosing
enclosing = 1
func2()
print(enclosing)
func1()
В данном примере переменная enclosing объявлена во внешней функции func1, а изменение ее значения происходит во внутренней функции func2 с помощью ключевого слова nonlocal. При вызове функции func1 будет изменено значение переменной enclosing на 1, что и будет выведено на экран.
Использование nonlocal особенно удобно при работе с циклами внутри циклов или другими вложенными структурами данных, когда необходимо изменить значение переменной на уровне внешней функции. Это позволяет избежать создания глобальных переменных и упрощает структуру кода.
Таким образом, понимание работы с областями видимости переменных и использование ключевого слова nonlocal позволяет более гибко управлять переменными во вложенных функциях и повышает читаемость и понятность кода.
Другие уроки курса "Python"
- Flask — веб-фреймворк Python
- Управление экспортом элементов
- Метод __call__ в Python
- Область видимости переменных
- Создание словаря и множества
- Работа с контекст-менеджером «with»
- Логирование с Logzero
- Создание и операции с дробями
- Python Аргументы по умолчанию
- Декодирование байтов в строку
- Управление ресурсами в Python
- Обработка ошибок в Python
- Тестирование с unittest
- Python: изменяемые и неизменяемые коллекции
- Комплексные числа в Python
- Создание списка через итерацию
- Docstring в Python
- Бесконечная проверка в Python
- Генерация QR-кодов с библиотекой qrcode
- Введение в Python
- Печать комбинаций в Python с Itertools
- Создание и использование ChainMap
- Перемещение и удаление файлов в Python
- Функция zip() — объединение последовательностей
- Искажение имен в Python
- Парсинг веб-страниц с Beautiful Soup
- Преобразование вложенного списка
- Импорт модулей в Python 3.12
- Обрезка изображения с Pillow
- Оформление текста в консоли с TermColor
- Объединение кортежей в Python
- inspect в Python: анализ кода
- Принципы Zen of Python
- Создание именованных кортежей в Python
- Модуль inspect: получение информации о объектах
- Поиск шаблона в строке
- Работа с пользовательским вводом
- Обмен значений переменных в Python
- Pillow: работа с изображениями
- Измерение времени выполнения с помощью time
- Python Поверхностное Копирование
- Форматирование данных с помощью pprint
- Оператор in и not in в Python
- Сравнение def и lambda в Python
- Defaultdict в Python
- Создание словарей с defaultdict















