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

这个函数定义在python中是如何工作的?,python,Python,我是Python的新手,有Java背景。我遇到了以下函数定义 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将是一个强制参数?@KodeS

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

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:是的,
seq
将是一个强制参数。此外,Python默认参数经常会让来自其他语言的程序员感到困惑。一定要阅读。