Курс 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. Сериализация данных в JSON с помощью json.dumps
  2. Метод count() для списков
  3. Объявление переменных в Python
  4. *args и **kwargs в Python
  5. Метод difference_update() — разность множеств
  6. Оптимизация поиска в словарях
  7. Python Translator: создание локальных переводчиков
  8. Измерение времени выполнения кода
  9. Работа с WindowsPath()
  10. Пересечение списков с использованием множеств
  11. Атрибуты класса и экземпляра
  12. Определение локальных переменных в Python
  13. Извлечение чисел из текста
  14. Управление ресурсами в Python
  15. Контроль точности вывода чисел
  16. Список методов и атрибутов
  17. Метод radd для пользовательских чисел
  18. Удаление элементов из списка в Python
  19. Декоратор для группы пользователей в Django
  20. Преобразование объекта в строку
  21. Замена элементов в списке с помощью генераторов списков
  22. Инициализация структур данных
  23. Импорт модулей и пакетов в Python
  24. Порядок и длина множеств в Python
  25. Работа со словарями Python
  26. Метод rename() для переименования файлов и каталогов
  27. Проверка наличия элемента в списке
  28. Инверсия списков и строк в Python
  29. Вычисление логарифмов в Python
  30. Оператор Walrus: правильное использование
  31. Основы работы с базами данных в Python
  32. Транспонирование 2D-массива с помощью zip
  33. Поиск элементов BeautifulSoup
  34. Управление экспортом элементов
  35. Оператор in и not in в Python
  36. Проверка подстроки в строке
  37. Декодирование байтов в строку
  38. Переопределение оператора % для объектов
  39. Работа с OpenCV
  40. Поиск с библиотекой Google
  41. Глобальные переменные в Python
  42. Оператор in в Python
  43. Красивый вывод списка

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