Курс 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"
- Создание именованных кортежей в Python
- Очистка входных данных
- Фильтры Pillow: NEAREST, BILINEAR, BICUBIC
- Дизассемблирование Python кода
- Автоматизация скриптов на AWS Lightsail.
- Форматирование данных с помощью pprint
- Метод rsub для пользовательских чисел
- Функциональное программирование в Python
- Метод __ixor__ для побитового исключающего ИЛИ
- Сортировка элементов с OrderedDict
- Ограничение ресурсов в Python
- Оператор «and» в Python
- Хранение переменных в Python.
- Оператор match в Python
- Избегание изменяемых аргументов
- Оператор assert в Python
- Область видимости переменных
- Конкатенация строк с методом join()
- Сохранение и загрузка модели в PyTorch
- Основы слова
- Поиск индексов в списке
- Генератор данных в Keras
- Структура данных deque в Python
- Переопределение метода
- Переопределение метода __or__()
- Переопределение метода divmod
- Автоматизация действий с Pyautogui
- Поиск индексов подстроки
- Вставка переменных в шаблоны Flask
- Импорт и использование модулей в Python
- Генераторы и сеты в Python
- Python: Splat-оператор и splatty-splat
- Использование обратной косой черты в f-строках
- Сортировка с помощью параметра key
- Расчет времени выполнения кода
- Управление пакетами с pip
- Гибкие функции Python
- Определение функций с необязательными аргументами
- Оператор обр. импликации
- Асинхронное выполнение задач в процессах
- Работа с часовыми поясами в Python
- Работа с каталогами в Python
- Изменение элемента списка
- Избегайте ошибку FileNotFoundError
- Функция с *args.















