Что такое **kwargs в Python?

«Что такое **kwargs в Python?» — вопрос из категории Python, который задают на 24% собеседований AQA / Automation. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

Пример:

def example(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")

example(name="Alice", age=30, city="New York")

Вывод:

name: Alice  
age: 30  
city: New York  

Особенности:

  • Используется, когда количество аргументов заранее неизвестно.
  • Работает только с именованными аргументами.
  • Часто применяется в декораторах или при передаче параметров в родительский класс через super().

*Отличие от `args`:**

  • *args — для позиционных аргументов (кортеж).
  • **kwargs — для именованных (словарь).