Курс 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. Изменение IP-адреса в Python
  2. Метод округления чисел
  3. Удаление символа из строки
  4. Операции с датами в Python
  5. Сравнение строк в Python
  6. Названия столбцов в Python таблицах
  7. Показ всплывающих окон Tkinter
  8. Исключение NotImplementedError
  9. Удаление элементов из списка в Python.
  10. Генератор надежных паролей
  11. Переопределение метода __and__
  12. Обработка ошибок ввода данных
  13. Оператор Walrus: правильное использование
  14. Howdoi — получение ответов из терминала
  15. Справка по импортированным модулям
  16. *args и **kwargs в Python
  17. TypedDict для kwargs в Python 3.12
  18. Преобразование объекта в строку
  19. Работа с NumPy массивами
  20. Профилирование данных с Pandas.
  21. Фильтры Pillow: NEAREST, BILINEAR, BICUBIC
  22. Декораторы в Python
  23. Бинарный поиск
  24. Установка и использование Python-dateutil
  25. Преобразование кортежа в словарь.
  26. Поиск наиболее частого элемента в списке
  27. Оптимизация гиперпараметров с Scikit Optimize
  28. Получение текущей даты в Python
  29. Считывание бинарного файла в Python
  30. Работа с файловой системой в Python
  31. Обмен переменными в Jupyter
  32. Модуль xkcd: загрузка комиксов
  33. Оптимизация памяти с __slots__
  34. Проблемы с именами переменных
  35. Циклы в Python
  36. Установка пакета в Python
  37. Оценка точности модели
  38. Метод count() для списков
  39. Создание пустых функций и классов в Python
  40. Настройка нарезки списков
  41. Применение промокода в Много лосося
  42. Функция format() в Python
  43. Проверка элементов списка условием
  44. Замена текста с помощью sub

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