Курс 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. Установка Home Assistant
  3. Логирование с Loguru
  4. %pinfo: получение информации об объекте
  5. Проверка окончания строки с помощью str.endswith()
  6. Проверка запуска скрипта или импорта модуля
  7. Работа с областями видимости переменных
  8. Преобразование кортежа в словарь.
  9. Сортировка HTML по CSS-селектору
  10. Перевод эмодзи и эмотиконов.
  11. Метод join() для объединения элементов строки
  12. Преобразование букв в нижний регистр
  13. Метод count() для списков
  14. Создание и инициализация объектов
  15. Руководство по использованию Colorama
  16. Поиск подстроки в строке
  17. Добавление цвета в консоли
  18. Оболочка Python
  19. Методы и функции в Python
  20. Метод split() для разделения строк
  21. Фильтрация последовательности
  22. Группировка элементов Python
  23. Работа с deque из collections
  24. Базовые объекты Python
  25. Переменные в Python: сокращение гласных
  26. Идентификатор объекта в Python
  27. Форматирование данных с pprint
  28. Ускоренный импорт библиотек
  29. Добавление Progressbar в Python
  30. Ветвление выражения в Python
  31. Работа с Path в Python
  32. Модуль os: работа с файлами и папками
  33. Определение относительного пути
  34. Поиск повторов в списке
  35. Объединение коллекций в Python
  36. Работа с argparse
  37. Преобразование строк в числа с плавающей запятой
  38. Обучение модели с указанием эпох
  39. Python OrderedDict и fromkeys() — работа с словарями
  40. Транспонирование матрицы в Python
  41. Удаление элемента из списка в Python
  42. Работа с географическими данными в Python
  43. Удаление URL-адресов в Python
  44. Фильтры Pillow: NEAREST, BILINEAR, BICUBIC
  45. Метод enumerate() в Python
  46. Основные методы NumPy
  47. Упрощение работы с JSON-данными в Python
  48. Правила именования переменных
  49. Эффективная конкатенация строк с использованием join()

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