Дан код: x = 10; def inc(): return x + 1. Что вернёт вызов inc()?
A11
B10
C
NameErrorD
UnboundLocalErrorПравильный ответ. Если внутри функции переменная только читается, Python может взять ее из глобальной области (по LEGB).
Разбор
По правилу области видимости (LEGB) Python ищет имя сначала в локальной области функции, затем во внешних, затем в глобальной и встроенной. В inc() переменная x не присваивается, а только читается, поэтому берется глобальное x = 10. Результат x + 1 равен 11.
Проверь себя · 1/3разбор после ответа
Есть функция
def f(a, b, c): return a + b + c. Какой вызов не выполнится из-за позиции аргументов (позиционный после именованного)?Ещё вопросы по теме «Функции и аргументы»
- Есть функция `def add(x, y): return x + y`. Что вернет вызов `add(2, 3)`?
- Дана функция `def f(a, b, c): return a * 100 + b * 10 + c`. Что вернет вызов `f(1, c=3, b=2)`?
- Есть функция `def power(x, exp=2): return x ** exp`. Что вернет вызов `power(3)`?
- Дана функция `def total(*args): return sum(args)`. Что вернет вызов `total(1, 2, 3)`?
- Есть функция `def f(a, b, c): return a + b + c`. Какой вызов не выполнится из-за позиции аргументов (позиционный после именованного)?
- Все вопросы по «Функции и аргументы» →