Курс 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. Преобразование чисел в Python
  3. Работа с deque из collections
  4. Установка Home Assistant
  5. Поиск индекса элемента
  6. Уникальные значения из списка
  7. Работа со словарями в Python
  8. Тип данных TypeVarTuple
  9. Удаление файлов с shutil.os.remove()
  10. Копирование объектов в Python
  11. Освобождение памяти в Python
  12. Работа с часовыми поясами в Python
  13. Объединение множеств в Python
  14. Работа со строками в Python
  15. Подсчет элементов с помощью Counter из collections
  16. Получение идентификатора объекта в памяти
  17. Подсказки при вводе данных в Python
  18. Работа с defaultdictами в Python
  19. Объединение строк с помощью метода join
  20. Списковое включение в Python
  21. Генераторы в Python
  22. Работа с deque в Python
  23. Метод __ilshift__ для битового сдвига влево
  24. Лямбда-функции в цикле
  25. Установка пакетов с помощью pip
  26. Форматирование кода на Python
  27. Выражения-генераторы в Python
  28. Создание списка дат
  29. Управление сессиями в Python
  30. Создание объекта времени
  31. Использование функции enumerate()
  32. Переменные класса и экземпляра
  33. Создание функций с произвольным количеством аргументов
  34. Установка User-Agent в Python
  35. Запуск файлового сервера
  36. Получение пути к текущему скрипту с помощью os
  37. Цикл for в Python
  38. Работа с SQLite в Python
  39. Установка и использование TensorFlow
  40. Генераторы данных
  41. Переопределение метода delitem в Python
  42. Дизассемблирование Python кода
  43. Структуры данных в Python

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