所以,我剛去到元組部根據認爲Python教程和我想問的是,爲什麼這會起作用:Python的元組和sum()查詢
def sumall(*args):
return sum(args)
print sumall(1, 2, 3, 4)
這
sum(1,2,3,4)
不?
所以,我剛去到元組部根據認爲Python教程和我想問的是,爲什麼這會起作用:Python的元組和sum()查詢
def sumall(*args):
return sum(args)
print sumall(1, 2, 3, 4)
這
sum(1,2,3,4)
不?
由於args
是一個元組,這是一個參數。下面不一樣的功能和工作原理:
sum((1,2,3,4))
如果沒有額外的括號,你在呼喚sum()
有四個獨立的參數,所以第一個參數是不是4個整數的元組只是一個整數。這是行不通的,因爲sum()
預計第一個參數是一個序列。可選的第二個參數可以用來給出不同的起始值(默認值爲0),這意味着sum()
最多需要2個參數。
內置sum
和您的sumall
之間存在細微差異。 sum
接收一個可迭代(通常爲list
或tuple
)參數(始終爲一個參數!),並且sumall
接收與您傳遞的參數一樣多的參數。
這是爲什麼?
def sum(args): # note: no asterisk here
result = 0
for val in args:
result += val
return result
薩沙,謝謝你,所有的輸入讚賞:)。 –
非常感謝馬丁,我簡直可以感覺到我的大腦不斷擴大的最後幾天,它就像我從未有過的:因爲你在你的函數簽名加星號標誌,內置的總和會像下面的定義在開始學習Python之前進行思考。 –