Курс 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. Ключевое слово global в Python
  2. Функция count() в Python
  3. Метод join() для объединения элементов
  4. Модуль os в Python: работа с файлами
  5. Сортировка в Python
  6. Преобразование числа в восьмеричную строку
  7. Возврат нескольких значений
  8. Работа с IP-адресами в Python
  9. Удаление элементов во время итерации
  10. Объединение словарей в Python
  11. Генерация QR-кодов с Python
  12. Проверка вхождения подстроки
  13. Проверка индексов коллекции
  14. Форматирование данных с помощью pprint
  15. Отправка POST-запроса в REST API
  16. Цикл for в Python
  17. Удаление файлов и папок в Python
  18. Подсчет элементов в Python
  19. Объединение коллекций в Python
  20. PATCH-запрос с библиотекой requests
  21. Структура данных deque в Python
  22. Управление асинхронными задачами на Python.
  23. Оператор continue в Python
  24. Разделение строки на пары ключ-значение.
  25. Управление памятью в Python
  26. Регулярные выражения в Python
  27. Логирование с Logzero: ротация файла
  28. Оператор «is not» в Python
  29. Оператор is в Python
  30. Фильтрация списков с itertools
  31. Создание функций высшего порядка
  32. Создание и удаление объектов
  33. Howdoi — получение ответов из терминала
  34. Нахождение максимального значения и его индекса в списке
  35. Создание вкладок с TKinter
  36. Разница между датами
  37. Возведение в квадрат с помощью itertools
  38. Получение частей дроби
  39. Сохранение Unicode в JSON
  40. Оптимизация строк в Python
  41. Поиск всех индексов подстроки
  42. Генераторы в Python
  43. Оценка выражений генератора в Python
  44. Слияние словарей в Python 3.9

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