Курс 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. Работа с CSV файлами в Python
  3. Распаковка аргументов в Python
  4. Удаление пробелов методом translate()
  5. Поиск кода
  6. Создание новой даты в Python
  7. Шаблоны Flask: условия и циклы
  8. Метод init в Python
  9. Поиск файлов по шаблону
  10. Создание итерируемых объектов
  11. Профилирование кода
  12. Создание словарей в Python
  13. Метод __iand__ для пользовательских классов
  14. Возвращение нескольких значений
  15. Создание словаря через dict comprehension
  16. Очистка входных данных
  17. Оператор is в Python
  18. Создание таблиц в терминале с PrettyTable
  19. Работа со строками
  20. Генератор списка с условием if
  21. Перетасовка списков в Python
  22. Возврат нескольких значений из функции
  23. Создание словарей и множеств в Python.
  24. Объединение списков в строку
  25. Генераторы списков в Python
  26. Проблема сравнения словарей
  27. Форматирование строк с f-строками
  28. Работа с множествами в Python
  29. Перехват исключений в Python
  30. Обработка элементов в Python
  31. Сравнение def и lambda функций в Python
  32. Срезы в Python
  33. Транспонирование 2D-массива с помощью zip
  34. 9 уловок для чистого кода
  35. Работа с изображениями Pillow
  36. Форматирование строк в Python.
  37. Измерение времени выполнения кода
  38. Проверка типа данных
  39. Установка и использование pyshorteners
  40. Удаление ссылок в Python
  41. Python: динамическая типизация и проверка типов
  42. Декораторы в Python
  43. Получение списка кортежей из словаря
  44. Оператор деления для класса Rational
  45. Python Ellipsis использование

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