Курс 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"

  1. Работа со строками
  2. Комментарии в Python
  3. Перевернуть список в Python
  4. CSV строка разделение в Python
  5. Многоточие в Python
  6. Декораторы для регистрации функций
  7. GitHub в Telegram: подписка на уведомления
  8. Автоматизация действий с Pyautogui
  9. Списковое включение в Python
  10. Проверка элементов списка условием
  11. Изменяемые и неизменяемые объекты
  12. Объединение словарей в Python
  13. Подсчет элементов с помощью Counter
  14. Работа с NumPy
  15. Конструктор в Python
  16. Конвертация текстовых чисел с помощью Numerizer
  17. Списковый компрехеншен.
  18. Defaultdict в Python
  19. Создание вкладок с TKinter
  20. Преобразование в float
  21. Комментарии в Python
  22. Форматирование строк с f-строками
  23. Генераторы в Python
  24. Мониторинг памяти с Pympler
  25. Исключение NotImplementedError
  26. Поиск самого частого элемента
  27. Операции с комплексными числами
  28. Непрерывная проверка в Python
  29. Работа с временем в Python
  30. Python reversed() vs срез[::-1]
  31. Логирование с Loguru
  32. Особенности запятых в Python
  33. Инвертирование словаря
  34. Строки в Python: апострофы и кавычки
  35. Измерение потребления памяти при сортировке
  36. Безопасный доступ к значениям словаря
  37. Модуль inspect: получение информации о объектах
  38. Цикл for в Python
  39. Получение текущей даты и времени
  40. Основные методы NumPy
  41. Обучение модели с указанием эпох
  42. Метод __iand__ для пользовательских классов
  43. Сортировка данных в Python

Marketello читают маркетологи из крутых компаний