Курс 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. Big O оптимизация
  2. Функция sleep() в Python
  3. Создание тестовых данных с Faker
  4. Оператор обр. импликации
  5. Фильтрация входных данных в Python
  6. Работа с кортежами в Python
  7. Объединение словарей в Python 3.5+
  8. Метод setdefault() в Python
  9. Управление асинхронными задачами с помощью Semaphore
  10. Быстрый поиск кода
  11. Лямбда-функции в Python
  12. Оператор объединения словарей
  13. JSON-esque в Python
  14. Проблема сравнения словарей
  15. Метод __int__ в Python
  16. Декораторы в Python
  17. Создание Radio кнопок в tkinter
  18. Создание GUI с Tkinter: Entry
  19. Получение имени функции с помощью inspect
  20. Принципы программирования
  21. Заказ карты Тинькофф Black
  22. Вывод букв строки в Python
  23. Преобразование многоуровневого словаря
  24. Модуль functools в Python
  25. Округление банкира в Python
  26. Форматирование строк с помощью f-строк
  27. Обратное распространение ошибки
  28. Функции map, filter, reduce
  29. Работа с collections.Counter
  30. Расчет времени выполнения
  31. Различия символов в Python
  32. Создание .exe файла с pyinstaller
  33. Установка переменной среды в Python
  34. Определение индекса элемента списка
  35. Объединение списков с помощью zip
  36. globals и locals
  37. Метод remove() для удаления элемента из списка
  38. Сравнение def и lambda функций в Python
  39. Расширение операции побитового «и» в Python
  40. Модуль future Python
  41. Методы и функции в Python
  42. Проверка типа объекта в Python
  43. Работа с контекстными менеджерами
  44. Фильтрация списка от «ложных» значений

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