Курс 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. Работа с deque в Python
  3. Сортировка HTML по CSS-селектору
  4. Создание словарей и множеств в Python
  5. Локальные переменные.
  6. Названия переменных
  7. PrettyTable: создание таблицы
  8. Сравнение неупорядоченных списков
  9. Метод rsub в Python: расширение функциональности вычитания
  10. Именованные срезы в Python
  11. Расширение операции побитового «и» в Python
  12. Генерация случайных чисел Python
  13. Декораторы для регистрации функций
  14. Синхронизация доступа к ресурсам
  15. Фильтрация данных в Python.
  16. Функции в Python: создание и вызов
  17. Извлечение аудио из видео
  18. Оператор in в Python
  19. Удаление файлов с shutil.os.remove()
  20. Установка и использование библиотеки google
  21. EMOT преобразование эмодзи в текст
  22. Работа со списками
  23. Деление в Python
  24. Работа с итераторами через срезы
  25. Решатель судоку на Python с pygame
  26. Тестирование модели в PyTorch
  27. Удаление первого элемента списка
  28. Инициализация переменных
  29. Создание таблиц в Python с PrettyTable
  30. Поиск подстроки в строке
  31. Отслеживание выполнения программы с библиотекой tqdm
  32. Работа с collections в Python
  33. Метод join() для объединения элементов строки
  34. Работа со временем в Python
  35. Применение функции к каждому элементу списка
  36. Генераторные функции в Python
  37. Закрытие файла в Python
  38. Выход из профиля в Django
  39. Работа со строками в Python
  40. Создание итератора
  41. Работа с утверждениями в Python
  42. Оператор is в Python
  43. Управление виртуальными средами в Python
  44. Распаковка значений в Python
  45. Профилирование данных с Pandas.
  46. ChainMap.new_child() — добавление нового словаря
  47. Функция zip() в Python

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