【发布时间】:2010-12-08 18:36:09
【问题描述】:
我意识到这听起来像是一个愚蠢的问题,但我上次编写它是在汇编程序中,所以我的想法可能是错误的:
这样的递归函数:
def fac(n):
if n == 0:
return 1
else:
return n * fac(n - 1)
为什么当函数到达 n == 0 时它不返回 1 而是返回阶乘的答案。我在想像在汇编程序中那样的东西,当 n == 0 时:
mov eax, 1
ret
为什么上面的代码可以工作,我想python返回那个条件之前堆栈上的最后一个值?
【问题讨论】: