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)。 –