Курс 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. Создание именованных кортежей в Python
  2. Очистка входных данных
  3. Фильтры Pillow: NEAREST, BILINEAR, BICUBIC
  4. Дизассемблирование Python кода
  5. Автоматизация скриптов на AWS Lightsail.
  6. Форматирование данных с помощью pprint
  7. Метод rsub для пользовательских чисел
  8. Функциональное программирование в Python
  9. Метод __ixor__ для побитового исключающего ИЛИ
  10. Сортировка элементов с OrderedDict
  11. Ограничение ресурсов в Python
  12. Оператор «and» в Python
  13. Хранение переменных в Python.
  14. Оператор match в Python
  15. Избегание изменяемых аргументов
  16. Оператор assert в Python
  17. Область видимости переменных
  18. Конкатенация строк с методом join()
  19. Сохранение и загрузка модели в PyTorch
  20. Основы слова
  21. Поиск индексов в списке
  22. Генератор данных в Keras
  23. Структура данных deque в Python
  24. Переопределение метода
  25. Переопределение метода __or__()
  26. Переопределение метода divmod
  27. Автоматизация действий с Pyautogui
  28. Поиск индексов подстроки
  29. Вставка переменных в шаблоны Flask
  30. Импорт и использование модулей в Python
  31. Генераторы и сеты в Python
  32. Python: Splat-оператор и splatty-splat
  33. Использование обратной косой черты в f-строках
  34. Сортировка с помощью параметра key
  35. Расчет времени выполнения кода
  36. Управление пакетами с pip
  37. Гибкие функции Python
  38. Определение функций с необязательными аргументами
  39. Оператор обр. импликации
  40. Асинхронное выполнение задач в процессах
  41. Работа с часовыми поясами в Python
  42. Работа с каталогами в Python
  43. Изменение элемента списка
  44. Избегайте ошибку FileNotFoundError
  45. Функция с *args.

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