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