Есть функция 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». Остальные варианты корректны, потому что либо все позиционные, либо все именованные, либо позиционные идут перед именованными.

Можно заниматься бесплатно

Готовим вопросы…

Три вопроса по теме этой страницы, с объяснениями.

Продолжить в браузере

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