Курс 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. Рекурсия для обращения строки
  2. Виртуальное окружение Python
  3. Транспонирование 2D-массива с помощью zip
  4. Список и кортеж в Python
  5. Дизассемблирование Python кода
  6. Обмен переменными в Jupyter
  7. Срезы в Python
  8. Генераторные выражения и islice.
  9. Декоратор Ajax required
  10. Оператор морж в Python 3.8
  11. Работа с JSON в Python
  12. Работа с комплексными числами в Python
  13. Работа с файловой системой в Python
  14. Оператор Walrus в Python
  15. Удаление эмодзи с помощью pandas
  16. Принципы программирования
  17. Работа с многоуровневыми словарями в Python
  18. Подробная информация о %pinfo
  19. Асинхронное выполнение задач в процессах
  20. Уникальные значения из списка
  21. Получение обратного списка чисел
  22. Анонимные функции в Python
  23. Передача параметров в Python
  24. Печать в одной строке
  25. Построение графиков в терминале с bashplotlib
  26. Многопоточность и асинхронное программирование в Python
  27. Многострочные комментарии в Python
  28. Поиск с помощью регулярных выражений
  29. Сравнение def и lambda функций в Python
  30. Применение функции к списку
  31. Метод __iand__ для пользовательских классов
  32. Идентификатор объекта в Python
  33. Переопределение метода __or__()
  34. Python Translator: создание локальных переводчиков
  35. Аннотации типов в Python
  36. Оператор «not» в Python
  37. Объединение словарей в Python
  38. Оптимизация памяти с __slots__
  39. Метод pop() списка
  40. Изменение переменной в Python: nonlocal
  41. Инициализация объекта
  42. Работа с YAML в Python: PyYAML.
  43. UserList в Python: Описание и примеры использования
  44. Проверка списка: any() и all()
  45. Подсчет элементов в списке с Counter
  46. Функция zip() в Python
  47. Декораторы в Python

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