Курс 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"
- Разработка Telegram-ботов
- Создание треугольника Паскаля
- Избегайте пустого списка
- Создание словарей в Python
- Расчет времени выполнения
- Подсчет количества элементов в списке
- Создание новых списков
- Протокол управления контекстом
- Метод get() для словарей
- Метод gt в Python
- f-строки в формате строк
- Удаление символа из строки
- Управление асинхронными задачами с помощью Semaphore
- Пропуск начальных строк с помощью dropwhile()
- Преобразование многоуровневого словаря
- Метод join для объединения строк
- Эффективная конкатенация строк в Python
- Преобразование строк в числа в Python
- Обратное распространение ошибки
- Генерация чисел с range()
- Создание вложенных циклов for
- Подсчет элементов в списке с Counter
- %pinfo: получение информации об объекте
- Работа с Colorama
- Списки в Python
- Декораторы с аргументами
- Назначение максимального и минимального значения переменной в Python.
- Сглаживание списка
- Хранение данных с помощью dataclasses
- Lambda Functions in Python
- Функция zip() в Python
- Функции all() и any() в Python
- Python Translator: создание локальных переводчиков
- Списки в Python: основы
- Оператор Walrus в Python 3.8
- Изменяемые и неизменяемые объекты
- Нахождение хеша для бесконечности и NaN в Python
- Псевдонимы в Python
- Оператор assert в Python
- Создание словарей и множеств в Python
- Работа с массивами в Python
- Метод __complex__ в Python
- Выражения-генераторы в Python
- Объединение словарей в Python















