Курс 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. Поиск наиболее частого элемента списке
  3. Преобразование в float
  4. Работа со временем в Python
  5. Многострочные комментарии в Python
  6. Замыкания в Python
  7. Оптимизация интернирования строк
  8. Потоковый ввод в Python
  9. Библиотека itertools: объединение списков
  10. Генераторы в Python
  11. Использование функции product
  12. Передача словаря через **kwargs
  13. Работа с библиотекой requests
  14. Установка Python3.7 и PIP
  15. Очистка списка от False, None, 0, «»
  16. Работа со словарями с defaultdict из collections
  17. Очистка данных в Python
  18. Оптимизация памяти в Python
  19. Работа с комплексными числами в Python
  20. Округление в Python
  21. Работа с датой и временем в Python
  22. Заказ карты Тинькофф Black
  23. Распаковка элементов последовательности
  24. Возврат значений из генератора
  25. globals и locals
  26. Работа с f-строками 2.0
  27. Упрощенный вывод данных в Python
  28. Оператор in для Python
  29. Дефолтные параметры в Python
  30. Парсинг веб-страниц с Beautiful Soup
  31. Ограничение итераций в Python
  32. Цикл for в Python
  33. Объединение списков с использованием itertools.chain
  34. Декораторы в Python
  35. Python: возвращение нескольких значений
  36. Автоматизация действий с Pyautogui
  37. Метод difference_update() — разность множеств
  38. Работа с аргументами командной строки
  39. Синхронизация потоков с time.sleep()
  40. Работа с исключениями в Python
  41. Создание графиков в терминале
  42. Операции со строками в Python
  43. Расчет времени выполнения кода
  44. Работа с часовыми поясами в Python.
  45. Лямбда-функции в defaultdict

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