Junior — Middle
77
Peut-on expliquer le concept de nonlocal et comment il est utilisé en Python?
Réponse de l'IA
sobes.tech IA
В Python ключевое слово nonlocal используется внутри вложенных функций для указания, что переменная, к которой мы обращаемся, находится во внешней (но не глобальной) области видимости.
Обычно, если внутри вложенной функции присвоить значение переменной, Python считает её локальной. Чтобы изменить переменную из внешней функции, нужно объявить её как nonlocal.
Пример:
def outer():
count = 0
def inner():
nonlocal count
count += 1
print(count)
inner()
inner()
outer()
# Вывод:
# 1
# 2
Без nonlocal попытка изменить count внутри inner вызвала бы ошибку, так как Python бы считал count локальной переменной, а она не была инициализирована внутри inner.
Таким образом, nonlocal позволяет работать с переменными из внешних, но не глобальных областей видимости, что полезно для замыканий и вложенных функций.