Что такое *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 (аргументы).
Как это сработало?
При вызове функции hello оператор * дал команду на распаковку, собрал все переданные аргументы в список и присвоил этот список переменной names.
Ну а дальше цикл начал итерироваться по полученному списку. Стоит отметить, что переменную, которая используется для распаковки принято называть args, сокращенно от arguments (аргументы).
def hello(*args):
for name in args:
print(f"Hello, {name}!")
hello("Max", "Jane", "Tom")
ВИДЕО: