Курс 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. Преобразование списка в словарь через генератор
  5. Метод matmul для умножения матриц
  6. Defaultdict в Python
  7. List Comprehension Tutorial
  8. Enum в Python
  9. Работа с контекстными менеджерами
  10. Создание новых списков через list comprehensions
  11. Метод сравнения объектов в Python
  12. Измерение времени выполнения кода с помощью time
  13. Вывод с переменной через запятую
  14. Итераторы в Python
  15. Виртуальные среды в Python
  16. Множественное назначение в Python
  17. Разбиение текста в Python
  18. Шаблоны Flask: условия и циклы
  19. Создание итерируемых объектов
  20. Основы работы с os
  21. Модуль pprint
  22. Управление контекстом с помощью декоратора contextmanager
  23. Профилирование данных с Pandas
  24. Автоматизация скриптов на AWS Lightsail.
  25. Тестирование с responses
  26. Измерение потребления памяти при сортировке
  27. Многострочные комментарии в Python
  28. Операции с числами в Python
  29. Модуль math: основные функции
  30. Создание директории в Python
  31. Измерение времени выполнения кода
  32. Декораторы в Python
  33. Функция zip() для объединения списков
  34. Идентификатор объекта в Python
  35. Метод gt в Python
  36. Избегайте пустого списка
  37. Уникальные значения из списка
  38. Генераторы данных
  39. Вызов функций по строке в Python.
  40. Управление экспортом элементов
  41. Измерение времени выполнения кода в Python
  42. Замена символов в Python
  43. Генерация чисел с range()
  44. Получение имени функции с помощью inspect
  45. Присоединение элементов коллекции
  46. Замыкания в Python
  47. Python enumerate() использование

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