Курс Python → Изменение переменной в Python: nonlocal

Для изменения переменной внешней области видимости в Python можно использовать ключевое слово nonlocal. Это позволяет ссылаться на переменные, определенные в ближайшей внешней области видимости, исключая глобальную. Таким образом, можно изменять переменные, которые находятся в области видимости функции, вложенной в другую функцию.

Например, рассмотрим следующий код:


def outer_func():
    a = 10
    
    def inner_func():
        nonlocal a
        a = 20
    
    inner_func()
    print(a)

outer_func()

В данном примере функция inner_func изменяет значение переменной a, которая находится в области видимости функции outer_func. После вызова inner_func значение переменной a становится равным 20, и при выводе на экран получаем именно это значение.

Ключевые слова global и nonlocal сообщают интерпретатору Python о том, что необходимо использовать переменные из соответствующих внешних областей видимости, а не создавать новые переменные с такими же именами.

Использование nonlocal может быть полезно при работе с вложенными функциями, когда требуется изменить значение переменной из внешней области видимости. Это помогает более гибко управлять переменными и избежать создания лишних переменных внутри функций.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Перегрузка операторов в Python
  2. Группировка элементов Python
  3. Хранение переменных в Python.
  4. Инициализация объекта
  5. Аргумент по умолчанию
  6. Отладка кода
  7. Именованные кортежи в Python
  8. Обновление данных через PUT запрос
  9. Подписка на Kaspersky Team
  10. Навыки Python: строки, типы данных
  11. Игра «Угадывание чисел»
  12. Мониторинг работы программы Py-spy
  13. Многострочные комментарии в Python
  14. CSV строка разделение в Python
  15. Переворот строки с помощью срезов
  16. Аргументы *args и **kwargs
  17. Рекурсия для обращения строки
  18. Создание задания в Cron
  19. Сортировка элементов с OrderedDict
  20. Объединение итераторов
  21. Функции в одну строку
  22. Переопределение оператора % для объектов
  23. Python reversed() vs срез[::-1]
  24. Лямбда-функции для min/max
  25. Инициализация переменных
  26. Отделение звука от видео
  27. Работа с итераторами в Python
  28. Оператор is в Python
  29. Прокачанный трейсинг ошибок
  30. Глубокое копирование объектов
  31. Создание копии списка в Python
  32. Сравнение строк в Python
  33. Поиск наиболее частого элемента в списке
  34. Группы исключений в Python
  35. Генератор бросков кубиков
  36. Изменяемые и неизменяемые объекты
  37. Форматирование данных с помощью pprint
  38. Итераторы с потерямиZIP
  39. Тестирование с responses
  40. Метод enumerate() в Python
  41. Возврат нескольких значений
  42. Условные выражения в Python
  43. Профилирование с cProfile
  44. discard() — удаление элемента из множества
  45. Чтение и запись TOML-конфигов
  46. Создание обратного итератора

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