这个函数定义在python中是如何工作的?

see*_*ker 3 python

我是Python的新手,拥有Java背景.我遇到了以下函数定义

def S(seq,i=0):
    print i
    if i==len(seq): 
        return 0    
    return S(seq,i+1)+seq[i]
Run Code Online (Sandbox Code Playgroud)

这里到底做了i=0什么,每次重新初始化为0?因为我注意到i的值增加了.

NPE*_*NPE 8

它提供第二个参数的默认值.

可以使用一个或两个参数调用该函数.如果使用one调用它,则第二个参数i默认为零.

  • @KodeSeeker:是的,`seq`将是一个强制性的论点.此外,Python默认参数通常会使来自其他语言的程序员绊倒.请务必阅读[Python中的默认参数值](http://effbot.org/zone/default-values.htm). (3认同)