Курс 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 enumerate() функции
  2. Итераторы в Python
  3. Работа с кортежами в Python
  4. Подписка на SelectelNews в Twitter
  5. Однострочники Python
  6. Список и кортеж в Python
  7. Методы classmethod и staticmethod
  8. Работа с датой и временем в Python
  9. Создание циклической ссылки
  10. Обход дочерних элементов BeautifulSoup
  11. Добавление элементов в список: append() vs extend()
  12. Преобразование Word в PDF с Spire.Doc
  13. Проверка версии Python
  14. Метод rename() для переименования файлов и каталогов
  15. Копирование объектов в Python
  16. Контроль точности вывода чисел
  17. Нахождение разницы между списками в Python
  18. Область видимости переменных
  19. Применение функции map() с лямбда-функциями
  20. Получение пути к текущему скрипту с помощью os
  21. Обработка данных в Python
  22. Создание функций с произвольным количеством аргументов
  23. Бесконечные списки в Python
  24. Регистрация на курсы SF Education
  25. Использование метода lower()
  26. Использование *args
  27. Абстракции словарей и множеств в Python
  28. Форматирование даты с strftime()
  29. Модуль subprocess: запуск внешних команд
  30. Различия символов в Python
  31. Извлечение аудио из видео
  32. Протокол управления контекстом
  33. Установка и использование библиотеки google
  34. Сравнение def и lambda-функций
  35. Создание панели меню Tkinter
  36. Проверка подстроки в строке с помощью in
  37. Деление в Python
  38. Обработка аргументов Python
  39. Поиск простых чисел
  40. Обработка исключений в Python
  41. Метод join для наборов
  42. Enum в Python
  43. Работа с файлами и директориями в Python.

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