Курс 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"
- Обмен данными с asyncio.Queue
- Делегирование в Python
- Обход словаря в Python
- Декоратор total_ordering для класса Point
- Переворот строки
- Профилирование с Pandas
- Генераторы в Python
- Аннотации типов в Python
- Flask — веб-фреймворк Python
- Замена переменных в Python
- Документация функции help() в Python
- Переопределение метода __eq__
- Закрытие файла в Python
- Работа с библиотекой xkcd
- Метод count() для списка
- Удаление символов новой строки в Python.
- Итерация по коллекции в Python
- Работа с Enum в Python3.
- F-строки в Python 3.8
- Генерация строк с .join()
- Отрицательные индексы списков в Python
- Активация Matplotlib в Jupyter
- Оператор «or» в Python
- Транспонирование матрицы в Python
- Извлечение данных из JSON
- Получение текущей даты и времени с помощью datetime
- Управление браузером с Selenium
- Объединение словарей в Python
- Список импортированных модулей в Python
- Импорт модулей в Python 3.12
- Логирование в Python
- Строковое представление объектов
- Преобразование списка в словарь через генератор
- Автоматизация с Python
- Транспонирование 2D-массива с помощью zip
- Расчет времени выполнения
- Метод join для наборов
- Модуль subprocess: запуск внешних команд
- Класс UserDict: дополнительная функциональность
- Лямбда-функции в defaultdict
- Модуль os: работа с файлами и папками
- Оператор «is not» в Python
- Генерация случайных чисел в Python
- Подсчет элементов с помощью Counter
- Кортеж в Python: создание и использование
- Разница между датами
- Глубокое копирование объектов















