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

Af(1, 2, 3)
Bf(1, b=2, 3)
Cf(a=1, b=2, c=3)
Df(1, 2, c=3)
Правильный ответ. После передачи именованного аргумента нельзя передавать позиционные аргументы.

Разбор

В Python позиционные аргументы должны идти до именованных. Вызов f(1, b=2, 3) нарушает это правило: после b=2 идет позиционный 3. Такой код приводит к ошибке вида «positional argument follows keyword argument». Остальные варианты корректны, потому что либо все позиционные, либо все именованные, либо позиционные идут перед именованными.

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

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