Курс 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
- Множества и frozenset
- Хранение переменных в Python.
- Модуль xkcd: добавление юмора в Python
- Работа с словарями в Python
- Управление импортом в Python
- Преобразование регистра символов
- Экспорт внешнего файла с помощью writefile
- Бесконечная проверка в Python
- Логирование в Python
- Шаблоны Flask: условия и циклы
- Работа с итераторами через срезы
- Работа с NumPy массивами
- Оператор walrus в Python
- Проверка списка: any() и all()
- Принцип одной функции
- Объединение списков с использованием itertools.chain
- Использование обратной косой черты в f-строках
- Работа с комплексными числами
- Утечки переменных цикла в Python 3.x
- Метод difference_update() — разность множеств
- Получение атрибутов и методов класса
- Поиск файлов по шаблону
- Работа с модулем bisect
- Объединение словарей в Python
- Значения по умолчанию в Python
- Удаление элементов из списка в Python
- Принципы SRP и OCP
- Генерация случайных чисел в Python
- Асинхронное программирование с asyncio
- Функции range() в Python
- Управление асинхронными задачами с помощью Semaphore
- Подсчет вхождений элементов
- Логирование в Python
- Сокращение ссылок с pyshorteners
- Принципы программирования
- Модуль itertools: комбинации и перестановки
- Профилирование кода на Python
- Оператор объединения словарей
- Отслеживание прогресса с tqdm
- Доступ к локальным переменным
- Управление пакетами с pip
- Работа с географическими данными.
- Подсчет элементов с помощью Counter
- Работа с JSON данными в Python
- Новшества Flask 2.0
- Преобразование многоуровневого словаря















