Курс 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"
- Работа с датой и временем в Python
- Работа с CSV файлами в Python
- Распаковка аргументов в Python
- Удаление пробелов методом translate()
- Поиск кода
- Создание новой даты в Python
- Шаблоны Flask: условия и циклы
- Метод init в Python
- Поиск файлов по шаблону
- Создание итерируемых объектов
- Профилирование кода
- Создание словарей в Python
- Метод __iand__ для пользовательских классов
- Возвращение нескольких значений
- Создание словаря через dict comprehension
- Очистка входных данных
- Оператор is в Python
- Создание таблиц в терминале с PrettyTable
- Работа со строками
- Генератор списка с условием if
- Перетасовка списков в Python
- Возврат нескольких значений из функции
- Создание словарей и множеств в Python.
- Объединение списков в строку
- Генераторы списков в Python
- Проблема сравнения словарей
- Форматирование строк с f-строками
- Работа с множествами в Python
- Перехват исключений в Python
- Обработка элементов в Python
- Сравнение def и lambda функций в Python
- Срезы в Python
- Транспонирование 2D-массива с помощью zip
- 9 уловок для чистого кода
- Работа с изображениями Pillow
- Форматирование строк в Python.
- Измерение времени выполнения кода
- Проверка типа данных
- Установка и использование pyshorteners
- Удаление ссылок в Python
- Python: динамическая типизация и проверка типов
- Декораторы в Python
- Получение списка кортежей из словаря
- Оператор деления для класса Rational
- Python Ellipsis использование















