Курс 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. Генераторные функции в Python
  4. Установка Home Assistant
  5. Лямбда-функции в Python
  6. Разделение строк в Python
  7. Генераторы в Python
  8. Получение пути к текущему скрипту с помощью os
  9. Основы работы со строками в Python
  10. Управление контекстом выполнения кода
  11. Защита данных в Python
  12. Измерение времени выполнения кода
  13. Псевдонимы в Python
  14. Python и Монти Пайтон
  15. Печать месячного календаря
  16. Глобальные переменные в Python
  17. Использование функции product
  18. Возвращение нескольких значений
  19. Применение функций в Python
  20. Хеши в Python
  21. Функция divmod() в Python
  22. Работа с deque в Python
  23. Глобальные переменные в Python
  24. Создание и обучение модели с Keras
  25. Работа с массивами в Numpy
  26. Получение текущей директории
  27. Метод add для класса Vector
  28. Бинарный поиск
  29. Метод rsub для пользовательских чисел
  30. Реализация метода __abs__ в Python
  31. Docstring в Python
  32. Переменная Шредингера
  33. Построение графиков в терминале с bashplotlib
  34. Измерение времени выполнения кода с использованием time
  35. Работа с аргументами командной строки в Python
  36. Оператор * в Python
  37. Numpy: использование Ellipsis
  38. Логирование с Logzero: ротация файла
  39. Новшества Flask 2.0
  40. Курс по дообучению ChatGPT
  41. Использование функции enumerate()
  42. Капитализация строк
  43. Python и Юникод: работа с цифрами
  44. Python Метод sleep() времени
  45. Работа с областями видимости переменных
  46. Метод join() для объединения строк
  47. Атрибуты класса и экземпляра

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