Есть функция def f(a, b): return a + b. Что произойдет при вызове f(1, a=2)?

A3
B2
CTypeError
DСработает a=2, а позиционный аргумент будет проигнорирован
Правильный ответ. Нельзя передать один и тот же параметр дважды (позиционно и по имени).

Разбор

Вызов f(1, a=2) передает значение для параметра a дважды: сначала позиционно (1), затем именованно (a=2). Python не может выбрать «какое правильное» и выбрасывает ошибку вида TypeError: got multiple values for argument. Это частая ошибка при смешанном стиле вызовов.

Проверь себя · 1/3разбор после ответа
Дана функция def f(a, b, c): return a * 100 + b * 10 + c. Что вернет вызов f(1, c=3, b=2)?
Тренировать Python в Telegram

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