Курс 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"
- Ключевое слово global в Python
- Функция count() в Python
- Метод join() для объединения элементов
- Модуль os в Python: работа с файлами
- Сортировка в Python
- Преобразование числа в восьмеричную строку
- Возврат нескольких значений
- Работа с IP-адресами в Python
- Удаление элементов во время итерации
- Объединение словарей в Python
- Генерация QR-кодов с Python
- Проверка вхождения подстроки
- Проверка индексов коллекции
- Форматирование данных с помощью pprint
- Отправка POST-запроса в REST API
- Цикл for в Python
- Удаление файлов и папок в Python
- Подсчет элементов в Python
- Объединение коллекций в Python
- PATCH-запрос с библиотекой requests
- Структура данных deque в Python
- Управление асинхронными задачами на Python.
- Оператор continue в Python
- Разделение строки на пары ключ-значение.
- Управление памятью в Python
- Регулярные выражения в Python
- Логирование с Logzero: ротация файла
- Оператор «is not» в Python
- Оператор is в Python
- Фильтрация списков с itertools
- Создание функций высшего порядка
- Создание и удаление объектов
- Howdoi — получение ответов из терминала
- Нахождение максимального значения и его индекса в списке
- Создание вкладок с TKinter
- Разница между датами
- Возведение в квадрат с помощью itertools
- Получение частей дроби
- Сохранение Unicode в JSON
- Оптимизация строк в Python
- Поиск всех индексов подстроки
- Генераторы в Python
- Оценка выражений генератора в Python
- Слияние словарей в Python 3.9















