Передача произвольного набора аргументов функции в Python
Иногда мы не знаем заранее, сколько аргументов должно быть передано функции. К счастью, Python позволяет функции получить произвольное количество аргументов из вызывающей команды.
Для примера рассмотрим функцию, которая будет добавлять нужную расцветку к заказу пользователя. Определяем функцию user_color(), и указываем звёздочку в имени параметра *colors. Звёздочка приказывает Python создать пустой кортеж с именем colors, и упаковать в него все полученные значения.
Обратите внимание: Python упаковывает все полученные аргументы в кортеж, даже если функция получает всего одно значение.
Далее в теле функции, мы выводим кортеж colors на экран. После того, как мы определили функцию, можно её вызвать, с произвольным количеством аргументов.
# Определяем функцию
def user_color(*colors):
# Выводим кортеж на экран
print(colors)
# Вызываем функцию
user_color("Красный", "Синий", "Зелёный")
Давайте усложним функцию user_color() и добавим в неё цикл for, который будет перебирать кортеж и выводить каждое значение на экран.
# Определяем функцию
def user_color(*colors):
print("Цвета, которые добавил пользователь:")
# Запускаем цикл for
for color in colors:
print("- " + color)
# Вызываем функцию
user_color("Красный", "Синий", "Зелёный")