Курс 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. Работа с геоданными с помощью geopy
  2. Библиотека schedule: планировщик задач
  3. Тайное преобразование типа ключа
  4. Работа с модулем random
  5. Преобразование PowerPoint в PDF.
  6. Операторы объединения в Python 3.9
  7. Функция zip() в Python
  8. Принципы программирования
  9. split() — разделение строки
  10. Глобальные переменные в Python
  11. Использование type hints
  12. Игра «Виселица» на Python
  13. Структура данных словарь в Python
  14. Избегайте пустого списка
  15. Создание задания в Cron
  16. Оператор деления для класса Rational
  17. Транспонирование 2D-массива с помощью zip
  18. Функции классификации комплексных чисел
  19. Модуль xkcd: добавление юмора в Python
  20. Строки в Python: апострофы и кавычки
  21. Форматирование строк в Python
  22. Измерение времени выполнения кода
  23. Гибкие функции Python
  24. Управление мышью и клавиатурой с Pyautogui
  25. Метод join() для объединения элементов
  26. Установка и использование модуля «howdoi»
  27. Поток данных в Python
  28. Работа с словарями в Python
  29. Работа с argparse
  30. Быстрый поиск кода
  31. Функция zip() в Python
  32. Преобразование регистра символов
  33. Отладка регулярных выражений в Python
  34. Деление в Python
  35. Метод rlshift для битового сдвига
  36. Обработка ошибок в Python
  37. Разделение строк методом split()
  38. Библиотека funcy: удобные утилиты
  39. Тестирование функции сложения
  40. Многострочные комментарии в Python
  41. Атрибуты класса и экземпляра
  42. Отношения подклассов в Python
  43. Замена текста с re.sub()
  44. Тестирование времени с Freezegun
  45. Конкатенация строк с методом join()

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