2012-05-09 28 views
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的值增加了。

回答

8

它爲第二個參數提供默認值

該函數可以用一個或兩個參數來調用。如果用一個參數調用,則第二個參數i默認爲零。

+0

這意味着在這種情況下'seq'將是一個強制性的參數? – KodeSeeker

+0

@KodeSeeker:是的。 – NPE

+3

@KodeSeeker:是的,'seq'將是一個強制性的論點。另外,Python的默認參數通常會影響來自其他語言的程序員。確保你閱讀[Python中的默認參數值](http://effbot.org/zone/default-values.htm)。 –

相關問題