Курс 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
- Генераторы по генератору
- Работа с контекстными переменными
- Нахождение самого длинного слова в списке с помощью max
- Решение переменной Шредингера
- Проверка надежности пароля на Python
- Округление в Python
- Объединение, распаковка и деструктуризация
- Динамическая типизация в Python
- Основы работы со строками в Python
- Работа с CSV файлами в Python
- Вычисление натуральных логарифмов в NumPy
- Ускорение обработки данных с %autoawait
- Поиск элементов BeautifulSoup
- Обработка исключений
- Участие в сообществе @selectel
- Векторизация в Python с NumPy.
- Использование модуля math
- Оптимизация гиперпараметров с Scikit Optimize
- Преобразование range в итератор
- Функция sleep() в Python
- F-строки в Python 3.8
- Отрицательные индексы списков
- Codecademy в Telegram
- Проверка подстроки в строке с помощью in
- Изменение элемента списка
- Метод append() для списка
- Работа с функцией next() в Python
- Генераторы в Python
- Изменение объектов в Python
- Печать календаря в Python
- Распаковка аргументов в Python
- Подчеркивание в REPL
- Множества и frozenset
- Любовь к Python
- Измерение времени выполнения кода
- globals и locals
- Проверка индексов коллекции
- Метод rxor для операции побитового исключающего «или»
- Конкатенация списков в Python
- Фильтры Pillow: NEAREST, BILINEAR, BICUBIC
- Функции классификации комплексных чисел















