Дрон Кодер — программирование для детей и взрослых в игровой форме. Начать бесплатно

*args и **kwargs простыми словами

Звёздочки в определении функции позволяют принимать сколько угодно аргументов. Разберём, что значат *args и **kwargs.

*args — любое число значений

Параметр со звёздочкой собирает все переданные позиционные аргументы в кортеж. Имя может быть любым, но по традиции пишут args. Удобно, когда заранее не знаешь, сколько значений придёт.

def summa(*args):
    return sum(args)

print(summa(1, 2, 3))   # 6

**kwargs — любые именованные

Две звёздочки собирают именованные аргументы (name=value) в словарь. По традиции — kwargs. Так функция может принять произвольный набор настроек по именам.

Зачем нужны

Они делают функции гибкими: обёртки, которые передают аргументы дальше, функции с переменным числом входов. Новичку писать их часто не придётся, но встречаться в чужом коде и документации будут постоянно — полезно узнавать.

Частые вопросы

Обязательно ли имена args и kwargs? Нет, важны звёздочки; имена — традиция.

Что внутри args и kwargs? args — кортеж значений, kwargs — словарь пар имя-значение.

Начать игру бесплатно
Попробуй прямо здесь
Уровень 1

Задание