Курс 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. Разработка Telegram-ботов
  2. Создание треугольника Паскаля
  3. Избегайте пустого списка
  4. Создание словарей в Python
  5. Расчет времени выполнения
  6. Подсчет количества элементов в списке
  7. Создание новых списков
  8. Протокол управления контекстом
  9. Метод get() для словарей
  10. Метод gt в Python
  11. f-строки в формате строк
  12. Удаление символа из строки
  13. Управление асинхронными задачами с помощью Semaphore
  14. Пропуск начальных строк с помощью dropwhile()
  15. Преобразование многоуровневого словаря
  16. Метод join для объединения строк
  17. Эффективная конкатенация строк в Python
  18. Преобразование строк в числа в Python
  19. Обратное распространение ошибки
  20. Генерация чисел с range()
  21. Создание вложенных циклов for
  22. Подсчет элементов в списке с Counter
  23. %pinfo: получение информации об объекте
  24. Работа с Colorama
  25. Списки в Python
  26. Декораторы с аргументами
  27. Назначение максимального и минимального значения переменной в Python.
  28. Сглаживание списка
  29. Хранение данных с помощью dataclasses
  30. Lambda Functions in Python
  31. Функция zip() в Python
  32. Функции all() и any() в Python
  33. Python Translator: создание локальных переводчиков
  34. Списки в Python: основы
  35. Оператор Walrus в Python 3.8
  36. Изменяемые и неизменяемые объекты
  37. Нахождение хеша для бесконечности и NaN в Python
  38. Псевдонимы в Python
  39. Оператор assert в Python
  40. Создание словарей и множеств в Python
  41. Работа с массивами в Python
  42. Метод __complex__ в Python
  43. Выражения-генераторы в Python
  44. Объединение словарей в Python

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