该函数将值返回到调用堆栈中较高的调用,为什么您认为它需要一个变量,例如进行简单的递归调用:
def r(n):
if n == 0:
return 0
return 1 + r(n-1)
然后,调用堆栈将如下所示:
r(3):
return 1 + r(2)
r(2):
return 1 + r(1)
r(1):
return 1 + r(0)
r(0):
return 0
因此,当展开调用堆栈时,您将得到:
r(3):
return 1 + r(2)
r(2):
return 1 + r(1)
r(1):
return 1 + 0
--
r(3):
return 1 + r(2)
r(2):
return 1 + 1
--
r(3):
return 1 + 2
--
3