Курс Python → Работа с областями видимости переменных
Одним из ключевых моментов в программировании на Python является понимание работы с областями видимости переменных. В Python существует возможность использовать ключевое слово nonlocal для работы с переменными во вложенных функциях. Когда у нас есть внешняя функция, внутри которой определена внутренняя функция, и нам необходимо изменить значение переменной из внутренней функции на уровне внешней функции, мы можем использовать nonlocal.
Для примера рассмотрим следующий код:
def func1():
enclosing = 0
def func2():
nonlocal enclosing
enclosing = 1
func2()
print(enclosing)
func1()
В данном примере переменная enclosing объявлена во внешней функции func1, а изменение ее значения происходит во внутренней функции func2 с помощью ключевого слова nonlocal. При вызове функции func1 будет изменено значение переменной enclosing на 1, что и будет выведено на экран.
Использование nonlocal особенно удобно при работе с циклами внутри циклов или другими вложенными структурами данных, когда необходимо изменить значение переменной на уровне внешней функции. Это позволяет избежать создания глобальных переменных и упрощает структуру кода.
Таким образом, понимание работы с областями видимости переменных и использование ключевого слова nonlocal позволяет более гибко управлять переменными во вложенных функциях и повышает читаемость и понятность кода.
Другие уроки курса "Python"
- Создание обратного итератора
- Отладчик pdb: начало работы
- Реализация метода __abs__ в Python
- Добавление вложенных списков
- Нахождение самого длинного слова в списке с помощью max
- Удаление дубликатов с сохранением порядка с помощью dict.fromkeys
- Управление ресурсами с контекстными менеджерами
- Преобразование в float
- Особенности запятых в Python
- Функции min(), max(), sum()
- Запрос пароля с помощью getpass
- Асинхронное выполнение задач в процессах
- Подсчет элементов с помощью Counter из collections
- Руководство по Pymorphy2
- Создание Telegram-бота на Python
- Подсказки типов в Python
- Замена текста с re.sub()
- Операции с комплексными числами
- Обновление и получение данных в SQLite
- Изменения в обработке логических значений
- Поиск частых элементов в списке
- Сортировка и обратный порядок
- Создание функций высшего порядка
- Конструктор в Python
- Структура данных словарь в Python
- Профилирование кода на Python
- Метод __getitem__ в Python
- Оценка точности модели
- Декораторы с @wraps
- Работа со случайными элементами
- Отслеживание прогресса с tqdm
- Базовые объекты Python
- Применение функции map() в Python
- Умножение строк и списков
- Циклы в Python
- Вычисление времени выполнения
- Декораторы для регистрации функций
- Метод ne для сравнения объектов
- Работа с collections в Python
- Генераторы в Python
- Переопределение метода __pow__
- Работа с Telegram API на Python
- Оператор += в Python
- Сортировка с параметром key
- Magic Commands — улучшение работы с Python
- Поиск уникальных элементов строкой в Python















