3
我是Python的新手,擁有Java背景。我碰到下面的函數定義這個函數定義如何在python中工作?
def S(seq,i=0):
print i
if i==len(seq):
return 0
return S(seq,i+1)+seq[i]
究竟是什麼的i=0
在這裏做的,是它重新初始化每次來到0?因爲我注意到i的值增加了。
我是Python的新手,擁有Java背景。我碰到下面的函數定義這個函數定義如何在python中工作?
def S(seq,i=0):
print i
if i==len(seq):
return 0
return S(seq,i+1)+seq[i]
究竟是什麼的i=0
在這裏做的,是它重新初始化每次來到0?因爲我注意到i的值增加了。
它爲第二個參數提供默認值。
該函數可以用一個或兩個參數來調用。如果用一個參數調用,則第二個參數i
默認爲零。
這意味着在這種情況下'seq'將是一個強制性的參數? – KodeSeeker
@KodeSeeker:是的。 – NPE
@KodeSeeker:是的,'seq'將是一個強制性的論點。另外,Python的默認參數通常會影響來自其他語言的程序員。確保你閱讀[Python中的默認參數值](http://effbot.org/zone/default-values.htm)。 –