Курс 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. Оператор «is not» в Python
  2. Очистка данных в Python
  3. Улучшение читаемости кода в Python
  4. Функция pow() — возвести число в степень
  5. Очистка данных с помощью pandas
  6. Удаление эмодзи с помощью pandas
  7. Проверка кортежей.
  8. Flask — веб-фреймворк Python
  9. Роль ключевого слова self
  10. Проверка файла .py на синтаксис.
  11. Модуль array: создание и использование массивов
  12. Объединение словарей в Python
  13. Создание списков в Python
  14. Подсчет частотности элементов в Python
  15. Руководство по использованию Colorama
  16. Перемещение и удаление файлов в Python
  17. Получение пути к текущему скрипту с помощью os
  18. Пересечение списков с использованием множеств
  19. Описание скриптов в README
  20. Блок else в обработке исключений
  21. Сравнение строк в Python
  22. Разделение строки с помощью re.split()
  23. Управление виртуальными средами в Python
  24. Защита данных в Python
  25. Метод join для наборов
  26. Экспорт функций в Python
  27. Работа со строками в Python
  28. Сравнение строк в Python
  29. Метод rsub в Python: расширение функциональности вычитания
  30. Python и Юникод: работа с цифрами
  31. TON Smart Challenge #2: участие и подготовка
  32. Оператор += в Python
  33. Измерение времени выполнения кода
  34. Управление User-Agent в Python
  35. Удаление пробелов методом translate()
  36. Работа с буфером обмена на Python
  37. Многострочные строки в Python
  38. Разработка игры Pong с turtle
  39. Метод ne для сравнения объектов
  40. Работа с модулем os в Python
  41. Возврат нескольких значений
  42. Работа с Enum в Python3.
  43. Математические функции в Python
  44. Измерение времени выполнения кода
  45. Сортировка данных в Python
  46. Форматирование строк с f-строками
  47. Частичное совпадение ввода

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