Курс 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. Подписка на каналы разработчиков
  3. Многострочные строки в Python
  4. Работа с IP-адресами в Python
  5. Переворот строки
  6. Функция zip() — объединение последовательностей
  7. Объединение списков с использованием itertools.chain
  8. Оптимизация интернирования строк
  9. Описание скриптов в README
  10. Структуры данных в Python
  11. Разделение строки на пары ключ-значение.
  12. Обработка данных в Python
  13. Декораторы с аргументами в Python
  14. Получение ID процесса
  15. Основы работы с базами данных в Python
  16. Оператор zip в Python
  17. Оператор «моржа» (Walrus Operator)
  18. Создание циклической ссылки
  19. Вывод букв строки в Python
  20. Проверка существования переменной с оператором :=
  21. Перевод текста с Python Translator
  22. Однострочники Python
  23. Приближение чисел в Python
  24. Проверка типа объекта в Python
  25. Поиск файлов по шаблону
  26. Виртуальное окружение Python
  27. Создание итерируемых объектов
  28. Уникальные значения из списка
  29. Удаление элементов во время итерации
  30. Передача аргументов через **arguments
  31. Оптимизация памяти в Python
  32. Комментарии в Python
  33. Оператор in и not in в Python
  34. Оформление кода на Python
  35. Область видимости переменных
  36. Получение обратного списка чисел
  37. Основы работы со списками
  38. Переопределение метода len
  39. Работа с базами данных SQLite
  40. Оператор умножения для вектора
  41. Асинхронный код в Python
  42. Проверка на истинность объектов в Python

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