Курс 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
- Импорт модулей в Python 3.12
- Декоратор защиты анонимных пользователей
- Особенности множеств в Python
- Правила именования переменных
- Печать в одной строке
- Сокращение ссылок с pyshorteners
- Присвоение и ссылки
- Переменные класса и экземпляра
- Работа с процессами в Python
- Структура данных словарь в Python
- Получение текущей даты и времени с помощью datetime
- Итерации в Python
- Python: Фильтрация списков с помощью filter()
- Преобразование данных в Python
- Замер времени выполнения кода
- Метод get для словарей
- Обработка исключений в Python
- Использование модуля __future__
- Enum в Python
- Каналы Senior: Python, Java, Frontend, SQL, C++
- Работа с функцией next() в Python
- Работа с дробями в Python
- Конкатенация строк с помощью join()
- Выбор редактора кода.
- Оболочка Python
- Измерение времени выполнения кода с помощью time
- Проверка типов с использованием isinstance
- Принципы Zen Python
- Работа с deque из collections
- Отправка POST-запроса в REST API
- Метод __iand__ для пользовательских классов
- Удаление специальных символов с помощью re.sub
- Нахождение хеша для бесконечности и NaN в Python
- Namedtuple в Python
- Условное добавление элементов в список
- Экспорт данных в файл.
- Создание копии итератора
- IPython и Jupyter Notebook: руководство
- Глобальные переменные в Python
- Работа с типами данных в Python с помощью pydantic.
- Автоматизация с Python
- Нахождение отличий в списках
- Замена текста с re.sub()
- Добавление элемента в список.
- Бесконечные списки в Python
- Именованные аргументы в Python















