Курс 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. Flask — веб-фреймворк Python
  2. Управление экспортом элементов
  3. Метод __call__ в Python
  4. Область видимости переменных
  5. Создание словаря и множества
  6. Работа с контекст-менеджером «with»
  7. Логирование с Logzero
  8. Создание и операции с дробями
  9. Python Аргументы по умолчанию
  10. Декодирование байтов в строку
  11. Управление ресурсами в Python
  12. Обработка ошибок в Python
  13. Тестирование с unittest
  14. Python: изменяемые и неизменяемые коллекции
  15. Комплексные числа в Python
  16. Создание списка через итерацию
  17. Docstring в Python
  18. Бесконечная проверка в Python
  19. Генерация QR-кодов с библиотекой qrcode
  20. Введение в Python
  21. Печать комбинаций в Python с Itertools
  22. Создание и использование ChainMap
  23. Перемещение и удаление файлов в Python
  24. Функция zip() — объединение последовательностей
  25. Искажение имен в Python
  26. Парсинг веб-страниц с Beautiful Soup
  27. Преобразование вложенного списка
  28. Импорт модулей в Python 3.12
  29. Обрезка изображения с Pillow
  30. Оформление текста в консоли с TermColor
  31. Объединение кортежей в Python
  32. inspect в Python: анализ кода
  33. Принципы Zen of Python
  34. Создание именованных кортежей в Python
  35. Модуль inspect: получение информации о объектах
  36. Поиск шаблона в строке
  37. Работа с пользовательским вводом
  38. Обмен значений переменных в Python
  39. Pillow: работа с изображениями
  40. Измерение времени выполнения с помощью time
  41. Python Поверхностное Копирование
  42. Форматирование данных с помощью pprint
  43. Оператор in и not in в Python
  44. Сравнение def и lambda в Python
  45. Defaultdict в Python
  46. Создание словарей с defaultdict

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