Вы пишете функцию среднего значения, и в коде чаще всего уже есть список values (например, из данных). Какой интерфейс обычно более универсален и читаем?

Adef mean(*values): ...
Bdef mean(**values): ...
Cdef mean(values): ...
Ddef mean(): ...
Правильный ответ. Если вход чаще уже «как коллекция», лучше принимать один параметр-итерируемый, чем заставлять распаковывать в *args.

Разбор

Сигнатура def mean(values): ... позволяет передавать список, кортеж или любой другой итерируемый объект напрямую (например, mean(values)), без распаковки. Вариант def mean(*values): ... удобен, когда вызывают как mean(1, 2, 3), но хуже подходит для данных, которые уже собраны в коллекции. При проектировании функций для аналитики чаще выигрывает явный параметр values.

Проверь себя · 1/3разбор после ответа
Дана функция def discount(total): if total >= 100: return 10; return 0. Что вернет вызов discount(120)?
Тренировать Python в Telegram

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