Курс 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. Оператор объединения словарей
  5. Функции с дополнением
  6. Порядок и длина множеств в Python
  7. Работа с Path в Python
  8. Python Менеджер контекста
  9. Работа с дробями в Python
  10. Кортеж в Python: создание и использование
  11. Python Calendar Usage
  12. Генерация UUID в Python
  13. Метод join() для объединения элементов
  14. Enum в Python
  15. Определение индекса элемента списка
  16. Сортировка с помощью key
  17. Преобразование списка в словарь через генератор
  18. Удаление символа из строки
  19. globals и locals
  20. Копирование объектов в Python
  21. Изменение логики работы с временем
  22. Проблемы с dict в Python
  23. Python Метод sleep() времени
  24. Распаковка аргументов в Python
  25. Итерация по коллекции в Python
  26. Python: Фильтрация списков с помощью filter()
  27. Функции высшего порядка в Python
  28. Операция += для списков
  29. Работа с изменяемыми коллекциями
  30. Работа с collections в Python.
  31. Работа с временем в Python
  32. Оператор (*) в Python
  33. Enum в Python
  34. Создание матрицы в Python
  35. EMOT преобразование эмодзи в текст
  36. Переопределение метода sub
  37. Списковое включение в Python
  38. Метаклассы в Python
  39. Создание веб-приложения с Flask
  40. Безопасные SQL-запросы в Python 3.11
  41. Шаблоны и наследование в Flask
  42. Передача неизвестных аргументов в Python.
  43. Транспонирование 2D-массива с помощью zip

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