学习python,搜索这个问题,并且很难弄清楚为什么我会得到我的行为。我得到了正确的输出,但我不知道为什么,我只是想知道前进只是为了更好地理解这个概念。让我解释一下:
如果创建一个函数,如
def function(list):
然后我在列表x
上调用此函数print function(x)
如果我那时用函数本身回忆这个函数就像这样:
def function(list):
function(list)
为什么递归调用仍然保存x的值,称为globablly?
答案 0 :(得分:2)
"列表"然后在参数列表中传递给下一个调用。每一个都是x的直接副本。它不是全球x;它是传递下来的变量列表中的本地副本。
请注意,这是无限递归的直接示例:无法停止调用自身的函数链。相反,你可能想要像
这样的东西def function(list):
if len(list) == 0:
return "end"
else
return function(list[1:]) + list[0]
递归函数需要终止条件并返回一些东西。