Курс 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
- Удаление ресурса в Python
- Модуль xkcd: загрузка комиксов
- Структура данных словарь в Python
- Преобразование PowerPoint в PDF.
- Вложенные функции в Python
- Группы исключений в Python
- Работа с collections в Python.
- Поиск подстроки в строке
- Частичное применение функций в Python
- Руководство по использованию Colorama
- Списковые включения в Python
- Игра Виселица на Python
- Перевернуть список в Python
- Функция __init__ в Python
- Основные операции с Numpy
- Создание списков в Python
- Форматирование строк в Python
- EMOT преобразование эмодзи в текст
- Создание вложенного генератора
- Копирование и вставка текста в Python
- Библиотека Emoji: использование смайлов в Python
- Работа с itertools
- Оператор распаковки в Python
- Работа с CSV файлами в Python
- Работа с контекстным менеджером Pool
- Логирование с Logzero
- Работа с каталогами в Python
- Получение частей дроби
- Гибкие функции Python
- Оператор == в Python
- Лямбда-функции в Python
- Импорт классов из другого файла
- Метод ifloordiv для пользовательских классов
- Анализ кода — Python
- Обновление и получение данных в SQLite
- Работа с множествами в Python
- Получение имени функции с помощью inspect
- Распаковка аргументов в Python
- Работа с collections.Counter
- Установка User-Agent в Python
- Протокол управления контекстом
- Метод repr() в Python
- Объединение словарей в Python















