Курс 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. Работа с Requests для HTTP-запросов
  2. Запрос пароля с помощью getpass
  3. Получение размера объекта с sys.getsizeof()
  4. Python: отсутствие точек с запятыми
  5. Определение размера папок в Python
  6. Метод rpow в Python
  7. Управление асинхронными задачами с помощью Semaphore
  8. Создание новых функций через partial
  9. Метод setdefault() в Python
  10. Закрытие файла в Python
  11. Сглаживание списка
  12. Конкатенация строк с join() в Python
  13. Особенности запятых в Python
  14. Python: цикл for и оператор присваивания
  15. Тестирование с unittest
  16. Проверка строки на палиндром
  17. Метод title() в Python
  18. Оператор «not» в Python
  19. Комментарии в Python.
  20. Обмен переменными в Jupyter
  21. Удаление эмодзи с помощью pandas
  22. Метод count() для списка
  23. Хранение переменных в словаре.
  24. Порядок операций в Python
  25. Избегайте двойного подчеркивания
  26. Подсчет элементов в Python
  27. Получение текущей даты и времени
  28. Подписка на @SelectelNews
  29. Модуль Antigravity в Python 3
  30. Создание комплексных чисел
  31. Тип CodeType в Python.
  32. Преобразование текста в нижний регистр
  33. Итераторы в Python
  34. Метод lt для сортировки объектов
  35. Удаление falsy-значений из списка с помощью filter
  36. Оператор «or» в Python
  37. Функция enumerate в Python
  38. Поиск самого частого элемента
  39. Создание словарей в Python
  40. Многострочные комментарии в Python
  41. Применение функции к списку
  42. Вычисление разности множеств в Python
  43. Метод difference_update() — разность множеств
  44. Вычисление фазы комплексного числа
  45. Библиотека Emoji: использование смайлов в Python
  46. Лямбда-функции для min/max

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