Аргументы функции - разница между двумя методами ввода - PullRequest
0 голосов
/ 02 ноября 2018

Довольно простой вопрос, но я относительно новичок в Python и прорабатываю книгу Think Python. Я нахожусь в главе о кортежах и выполняю упражнение, где мне говорят написать функцию, которая принимает любое количество аргументов и возвращает их сумму.

Написание это не проблема:

def sumall(*args):
    return sum(args)
print(sumall(1,2,3,4))

У меня вопрос, почему выше работает, а ниже нет?

sum(1,2,3,4)

Я понимаю, что sum () принимает максимум 2 аргумента, но в чем разница между этим и назначением этих аргументов из аргументов, введенных в функцию sumall ()?

1 Ответ

0 голосов
/ 02 ноября 2018

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

Когда вы звоните sum(args), вы переходите в список args. Когда вы звоните sum(1, 2, 3, 4), вы передаете 4 разных целочисленных аргумента.

...