Курс 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. Работа с контекстными переменными
  4. Нахождение самого длинного слова в списке с помощью max
  5. Решение переменной Шредингера
  6. Проверка надежности пароля на Python
  7. Округление в Python
  8. Объединение, распаковка и деструктуризация
  9. Динамическая типизация в Python
  10. Основы работы со строками в Python
  11. Работа с CSV файлами в Python
  12. Вычисление натуральных логарифмов в NumPy
  13. Ускорение обработки данных с %autoawait
  14. Поиск элементов BeautifulSoup
  15. Обработка исключений
  16. Участие в сообществе @selectel
  17. Векторизация в Python с NumPy.
  18. Использование модуля math
  19. Оптимизация гиперпараметров с Scikit Optimize
  20. Преобразование range в итератор
  21. Функция sleep() в Python
  22. F-строки в Python 3.8
  23. Отрицательные индексы списков
  24. Codecademy в Telegram
  25. Проверка подстроки в строке с помощью in
  26. Изменение элемента списка
  27. Метод append() для списка
  28. Работа с функцией next() в Python
  29. Генераторы в Python
  30. Изменение объектов в Python
  31. Печать календаря в Python
  32. Распаковка аргументов в Python
  33. Подчеркивание в REPL
  34. Множества и frozenset
  35. Любовь к Python
  36. Измерение времени выполнения кода
  37. globals и locals
  38. Проверка индексов коллекции
  39. Метод rxor для операции побитового исключающего «или»
  40. Конкатенация списков в Python
  41. Фильтры Pillow: NEAREST, BILINEAR, BICUBIC
  42. Функции классификации комплексных чисел

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