В Python *args принимает произвольные позиционные аргументы, **kwargs — именованные. Их можно сочетать с обычными параметрами.
Как в Python определить функцию, принимающую произвольное количество аргументов?
В Python *args принимает произвольные позиционные аргументы, **kwargs — именованные. Их можно сочетать с обычными параметрами.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
В Python *args принимает произвольные позиционные аргументы, **kwargs — именованные. Их можно сочетать с обычными параметрами.
def describe(label, *args, **kwargs):
return label, args, kwargs
print(describe('job', 1, 2, retry=3))
# ('job', (1, 2), {'retry': 3})
Внутри функции args — tuple, kwargs — dict. При вызове звёздочки работают наоборот: распаковывают последовательность и mapping. Для устойчивого публичного интерфейса известные параметры лучше объявлять явно, а не прятать всё в kwargs.