Курс 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"
- Big O оптимизация
- Функция sleep() в Python
- Создание тестовых данных с Faker
- Оператор обр. импликации
- Фильтрация входных данных в Python
- Работа с кортежами в Python
- Объединение словарей в Python 3.5+
- Метод setdefault() в Python
- Управление асинхронными задачами с помощью Semaphore
- Быстрый поиск кода
- Лямбда-функции в Python
- Оператор объединения словарей
- JSON-esque в Python
- Проблема сравнения словарей
- Метод __int__ в Python
- Декораторы в Python
- Создание Radio кнопок в tkinter
- Создание GUI с Tkinter: Entry
- Получение имени функции с помощью inspect
- Принципы программирования
- Заказ карты Тинькофф Black
- Вывод букв строки в Python
- Преобразование многоуровневого словаря
- Модуль functools в Python
- Округление банкира в Python
- Форматирование строк с помощью f-строк
- Обратное распространение ошибки
- Функции map, filter, reduce
- Работа с collections.Counter
- Расчет времени выполнения
- Различия символов в Python
- Создание .exe файла с pyinstaller
- Установка переменной среды в Python
- Определение индекса элемента списка
- Объединение списков с помощью zip
- globals и locals
- Метод remove() для удаления элемента из списка
- Сравнение def и lambda функций в Python
- Расширение операции побитового «и» в Python
- Модуль future Python
- Методы и функции в Python
- Проверка типа объекта в Python
- Работа с контекстными менеджерами
- Фильтрация списка от «ложных» значений















