Курс 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.12
  3. Декоратор защиты анонимных пользователей
  4. Особенности множеств в Python
  5. Правила именования переменных
  6. Печать в одной строке
  7. Сокращение ссылок с pyshorteners
  8. Присвоение и ссылки
  9. Переменные класса и экземпляра
  10. Работа с процессами в Python
  11. Структура данных словарь в Python
  12. Получение текущей даты и времени с помощью datetime
  13. Итерации в Python
  14. Python: Фильтрация списков с помощью filter()
  15. Преобразование данных в Python
  16. Замер времени выполнения кода
  17. Метод get для словарей
  18. Обработка исключений в Python
  19. Использование модуля __future__
  20. Enum в Python
  21. Каналы Senior: Python, Java, Frontend, SQL, C++
  22. Работа с функцией next() в Python
  23. Работа с дробями в Python
  24. Конкатенация строк с помощью join()
  25. Выбор редактора кода.
  26. Оболочка Python
  27. Измерение времени выполнения кода с помощью time
  28. Проверка типов с использованием isinstance
  29. Принципы Zen Python
  30. Работа с deque из collections
  31. Отправка POST-запроса в REST API
  32. Метод __iand__ для пользовательских классов
  33. Удаление специальных символов с помощью re.sub
  34. Нахождение хеша для бесконечности и NaN в Python
  35. Namedtuple в Python
  36. Условное добавление элементов в список
  37. Экспорт данных в файл.
  38. Создание копии итератора
  39. IPython и Jupyter Notebook: руководство
  40. Глобальные переменные в Python
  41. Работа с типами данных в Python с помощью pydantic.
  42. Автоматизация с Python
  43. Нахождение отличий в списках
  44. Замена текста с re.sub()
  45. Добавление элемента в список.
  46. Бесконечные списки в Python
  47. Именованные аргументы в Python

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