Курс 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
- Установка Home Assistant
- Лямбда-функции в Python
- Разделение строк в Python
- Генераторы в Python
- Получение пути к текущему скрипту с помощью os
- Основы работы со строками в Python
- Управление контекстом выполнения кода
- Защита данных в Python
- Измерение времени выполнения кода
- Псевдонимы в Python
- Python и Монти Пайтон
- Печать месячного календаря
- Глобальные переменные в Python
- Использование функции product
- Возвращение нескольких значений
- Применение функций в Python
- Хеши в Python
- Функция divmod() в Python
- Работа с deque в Python
- Глобальные переменные в Python
- Создание и обучение модели с Keras
- Работа с массивами в Numpy
- Получение текущей директории
- Метод add для класса Vector
- Бинарный поиск
- Метод rsub для пользовательских чисел
- Реализация метода __abs__ в Python
- Docstring в Python
- Переменная Шредингера
- Построение графиков в терминале с bashplotlib
- Измерение времени выполнения кода с использованием time
- Работа с аргументами командной строки в Python
- Оператор * в Python
- Numpy: использование Ellipsis
- Логирование с Logzero: ротация файла
- Новшества Flask 2.0
- Курс по дообучению ChatGPT
- Использование функции enumerate()
- Капитализация строк
- Python и Юникод: работа с цифрами
- Python Метод sleep() времени
- Работа с областями видимости переменных
- Метод join() для объединения строк
- Атрибуты класса и экземпляра















