Дан код: x = 10; def inc(): return x + 1. Что вернёт вызов inc()?

A11
B10
CNameError
DUnboundLocalError
Правильный ответ. Если внутри функции переменная только читается, Python может взять ее из глобальной области (по LEGB).

Разбор

По правилу области видимости (LEGB) Python ищет имя сначала в локальной области функции, затем во внешних, затем в глобальной и встроенной. В inc() переменная x не присваивается, а только читается, поэтому берется глобальное x = 10. Результат x + 1 равен 11.

Проверь себя · 1/3разбор после ответа
Есть функция def f(a, b, c): return a + b + c. Какой вызов не выполнится из-за позиции аргументов (позиционный после именованного)?
Тренировать Python в Telegram

Ещё вопросы по теме «Функции и аргументы»