Дана функция def endpoint(path, **kwargs): return kwargs. Что вернёт вызов endpoint('/users', limit=10, sort='asc')?

AСписок ['limit', 'sort'] из имён переданных именованных аргументов без значений
BКортеж ('limit', 10, 'sort', 'asc') с чередованием имён и значений аргументов
CСловарь {'limit': 10, 'sort': 'asc'} с сопоставлением имён и значений аргументов
DМножество {'limit', 'sort'} из имён переданных именованных аргументов без значений
Правильный ответ. **kwargs собирает именованные аргументы в словарь, где ключ — имя параметра, а значение — переданное значение.

Разбор

Параметр **kwargs собирает все именованные аргументы, которые не перечислены явно, в словарь. В примере kwargs будет равен {'limit': 10, 'sort': 'asc'}. Это удобно для функций-обёрток, журналирования, проброса опций и построения гибких интерфейсов, но злоупотреблять не стоит: основные параметры лучше делать явными, чтобы сигнатура функции оставалась читаемой.

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

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