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

На самом деле названия переменных – args, kwargs – это просто соглашение. Важны здесь только звездочки. Они обозначают сборку аргументов в коллекцию (список или словарь). Одна звездочка предназначена для обычных аргументов, две – для именованных.

Можно заменить *args на *vars, а **kwargs на **options или другое слово. Программа будет работать корректно, но другие разработчики могут вас не понять.

def test_args(farg, *args):
    print("Первый известный аргумент: ", farg)
    for arg in args:
        print("Один из оставшихся аргументов: ", arg)

test_args(1, "two", 3)
# Первый известный аргумент: 1
# Один из оставшихся аргументов: two
# Один из оставшихся аргументов: 3

def test_kwargs(farg, **kwargs):
    print("Первый известный аргумент: ", farg)
    for key in kwargs:
        print("Один из оставшихся аргументов: %s: %s" % (key, kwargs[key]))

test_kwargs(farg=1, myarg2="two", myarg3=3)
# formal arg: 1
# Один из оставшихся аргументов: myarg2: two
# Один из оставшихся аргументов: myarg3: 3

Конструкции *args и **kwargs можно использовать как самостоятельно, так и в комбинации с любым количеством обычных аргументов. Например, в коде выше первый параметр farg обрабатывается отдельно, а все остальные собираются в коллекцию.

Марина

Recent Posts

10 удалённых Python-вакансий

Если вы ищете работу на Python, на Talanto.work сейчас есть варианты для junior, middle, senior…

6 месяцев ago

Где искать Python-вакансии в 2026 году: зачем на Talanto.work появился отдельный сценарий поиска

Рынок Python-вакансий большой, но удобным его назвать сложно. Формально вакансий много, однако в реальном поиске…

6 месяцев ago

Срезы в Python со всеми подробностями

Срезы в Python — это больше, чем a[2:7]. В статье — быстрый разбор полезных приёмов:…

8 месяцев ago

Возведение в степень в Python: полное руководство

В этой статье мы рассмотрим возведение в степень в Python с помощью различных методов, от…

9 месяцев ago

Как удалить дубликаты из списка Python?

Дубликаты в списке Python — частая проблема. В статье показано, как быстро убрать повторы, в…

9 месяцев ago

Виртуальный (shared) хостинг от SpaceWeb: технический обзор

Услуга виртуального хостинга на SpaceWeb позволяет арендовать часть сервера (shared-сервера) и разместить на нём свой…

11 месяцев ago