Что такое *args и **kwargs? Какие структуры данных они формируют?

В Python kwargs — это способ передать в функцию произвольное количество именованных аргументов в виде словаря. Имя kwargs условное, можно использовать любое, главное — двойная звёздочка перед параметром.

Короткий ответ

Что ответить на собеседовании

В Python kwargs — это способ передать в функцию произвольное количество именованных аргументов в виде словаря. Имя kwargs условное, можно использовать любое, главное — двойная звёздочка перед параметром.

Подробный разбор

Ответ с пояснениями

В Python **kwargs — это способ передать в функцию произвольное количество именованных аргументов в виде словаря. Имя kwargs условное, можно использовать любое, главное — двойная звёздочка ** перед параметром.

Когда функция объявлена с **kwargs, все дополнительные именованные аргументы, которые не были явно указаны, собираются в словарь, где ключ — имя аргумента, а значение — его значение.

Пример:

def greet(**kwargs):
    for name, greeting in kwargs.items():
        print(f"{name}: {greeting}")

greet(John="Hello", Alice="Hi", Bob="Hey")

Вывод:

John: Hello
Alice: Hi
Bob: Hey

Это удобно, когда заранее неизвестно, какие именно именованные параметры будут переданы, или когда нужно передать параметры дальше в другую функцию.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее