Курс 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. Реверс строки в Python
  3. Удаление ресурса в Python
  4. Модуль xkcd: загрузка комиксов
  5. Структура данных словарь в Python
  6. Преобразование PowerPoint в PDF.
  7. Вложенные функции в Python
  8. Группы исключений в Python
  9. Работа с collections в Python.
  10. Поиск подстроки в строке
  11. Частичное применение функций в Python
  12. Руководство по использованию Colorama
  13. Списковые включения в Python
  14. Игра Виселица на Python
  15. Перевернуть список в Python
  16. Функция __init__ в Python
  17. Основные операции с Numpy
  18. Создание списков в Python
  19. Форматирование строк в Python
  20. EMOT преобразование эмодзи в текст
  21. Создание вложенного генератора
  22. Копирование и вставка текста в Python
  23. Библиотека Emoji: использование смайлов в Python
  24. Работа с itertools
  25. Оператор распаковки в Python
  26. Работа с CSV файлами в Python
  27. Работа с контекстным менеджером Pool
  28. Логирование с Logzero
  29. Работа с каталогами в Python
  30. Получение частей дроби
  31. Гибкие функции Python
  32. Оператор == в Python
  33. Лямбда-функции в Python
  34. Импорт классов из другого файла
  35. Метод ifloordiv для пользовательских классов
  36. Анализ кода — Python
  37. Обновление и получение данных в SQLite
  38. Работа с множествами в Python
  39. Получение имени функции с помощью inspect
  40. Распаковка аргументов в Python
  41. Работа с collections.Counter
  42. Установка User-Agent в Python
  43. Протокол управления контекстом
  44. Метод repr() в Python
  45. Объединение словарей в Python

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