Переменное число параметров в Python (по книге "A byte of Python")

Доброго времени суток всем. Кто может подробно разъяснить мне как это работает? Момент начинается со 2 строки и заканчивается на "return" (включительно). По остальной теме разобрался, на этом моменте ломаю голову. Извиняюсь, если неправильно оформил.

def total(initial=5, *numbers, **keywords):
    count = initial
    for number in numbers:
        count += number
    for key in keywords:
        count += keywords[key]
    return count

print(total(10, 1, 2, 3, vegetables=50, fruits=100))

Ответы (1 шт):

Автор решения: Ildar Akhmetov

Во второй строке в count записывается значение initial. Если вызвать функцию так print(total(initial=10)) или так print(total(7)), то программа выведет 10 или 7 соответственно. В третьей строке идёт цикл по всем значениям из numbers, которые получаются при задании positional arguments. В четвёртой идёт прибавление этих аргументов к count. В пятой идёт цикл по всем ключам из keywords, которые получились при задании keyword arguments. В шестой строке идёт прибавление значений от определённого ключа к count. Соответственно return отдаёт значение count.

Советую прочитать эту небольшую статью, тут дан подробный ответ на немного другом примере.

→ Ссылка