Курс 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
- Работа с Path в Python
- Python Менеджер контекста
- Работа с дробями в Python
- Кортеж в Python: создание и использование
- Python Calendar Usage
- Генерация UUID в Python
- Метод join() для объединения элементов
- Enum в Python
- Определение индекса элемента списка
- Сортировка с помощью key
- Преобразование списка в словарь через генератор
- Удаление символа из строки
- globals и locals
- Копирование объектов в Python
- Изменение логики работы с временем
- Проблемы с dict в Python
- Python Метод sleep() времени
- Распаковка аргументов в Python
- Итерация по коллекции в Python
- Python: Фильтрация списков с помощью filter()
- Функции высшего порядка в Python
- Операция += для списков
- Работа с изменяемыми коллекциями
- Работа с collections в Python.
- Работа с временем в Python
- Оператор (*) в Python
- Enum в Python
- Создание матрицы в Python
- EMOT преобразование эмодзи в текст
- Переопределение метода sub
- Списковое включение в Python
- Метаклассы в Python
- Создание веб-приложения с Flask
- Безопасные SQL-запросы в Python 3.11
- Шаблоны и наследование в Flask
- Передача неизвестных аргументов в Python.
- Транспонирование 2D-массива с помощью zip















