2012-05-09 25 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)。 –

相关问题