Дана функция 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)?Ещё вопросы по теме «Функции и аргументы»
- Есть функция `def add(x, y): return x + y`. Что вернет вызов `add(2, 3)`?
- Дана функция `def f(a, b, c): return a * 100 + b * 10 + c`. Что вернёт вызов `f(1, c=3, b=2)`?
- Есть функция `def power(x, exp=2): return x ** exp`. Что вернёт вызов `power(3)`?
- Дана функция `def total(*args): return sum(args)`. Что вернёт вызов `total(1, 2, 3)`?
- Дан код: `x = 10` на верхнем уровне модуля и `def inc(): return x + 1`. Что вернёт вызов `inc()`?
- Все вопросы по «Функции и аргументы» →