Артём Санников

Персональный блог

Мобильная разработка
Менеджеры пакетов
Хостинг провайдер
Смартфоны
› Позиционные аргументы с произвольными наборами аргументами в функциях Python

Позиционные аргументы с произвольными наборами аргументами в функциях Python

Ранее мы уже рассматривали передачу произвольного значения аргументов функции, но как быть, если нужно передать позиционный аргумент и произвольный набор вместе?

Если необходимо, чтобы функция могла вызываться с произвольным набором аргументов, параметр для получения произвольного количества аргументов должен стоять на последнем месте в определении функции. Так как Python сначала подбирает соответствия для позиционных и именованных аргументов, а потом объединяет все остальные в последнем параметре.

Рассмотрим пример с добавлением дополнительных цветов в заказ пользователя, но с небольшой доработкой.

Теперь мы сначала узнаём нужен ли градиент пользователю, а потом он может добавить произвольное количество цветов.

В определении функции user_color(), Python сохраняет первое значение в параметре gradient. Все остальные значения, следующие за ним, сохраняются в кортеж colors.

При вызове функции user_color() на первом месте располагается аргументы для параметра gradient, а затем следует сколь угодно дополнений.

# Определяем функцию
def user_color(gradient, *colors):

    # Выводим значение параметра gradient
    print("Использование градиента:")
    print("- " + gradient)

    print("\nЦвета, которые добавил пользователь:")

    # Запускаем цикл for
    for color in colors:
        print("- " + color)

# Вызываем функцию
user_color("Да", "Красный", "Синий", "Зелёный")

Метки: , , .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Реклама от Google
Реклама от Google