Python Tutorial

Что такое *args в Python

Что такое *args в Python

*args в Python - это способ в функции обрабатывать произвольное количество аргументов. Эти аргументы передаются как кортеж, что позволяет функции принимать более гибкое количество аргументов.
Есть функция hello, которая принимает список с именами, проходит по нему циклом и каждого приветствует.
def hello(names):
    for name in names:
        print(f"Hello, {name}!")

names = ("Max", "Jane", "Tom")

hello(names)
Работает.
Но что если мы не хотим записывать имена в список, а хотим сразу же подавать их в функцию в виде аргументов? Подадим имена в вызове функции через запятую и воспользуемся распаковкой.
def hello(*names):
    for name in names:
        print(f"Hello, {name}!")
        
hello("Max", "Jane", "Tom")
Запускаем.

Как это сработало?

При вызове функции hello оператор * дал команду на распаковку, собрал все переданные аргументы в список и присвоил этот список переменной names.

Ну а дальше цикл начал итерироваться по полученному списку. Стоит отметить, что переменную, которая используется для распаковки принято называть args, сокращенно от arguments (аргументы).
def hello(*args):
    for name in args:
        print(f"Hello, {name}!")

hello("Max", "Jane", "Tom")
ВИДЕО:
Синтаксис