递归函数调用如何工作?这是我想要理解的代码片段。
def some_func(num):
if num == 3:
print (num)
else:
num += 1
some_func(num)
print('final')
some_func(0)
输出:
3
final
final
final
我认为在达到num == 3的if条件之后,它只会在if块内执行print语句并退出,但会继续执行三次print('final')语句。为什么?
答案 0 :(得分:0)
我相信其他3个“决赛”分别代表0、1和2。最后打印3时,该函数返回到其parent(2),然后继续打印“最终”,然后返回其parent(1)。重复执行直到num == 0时最终返回到呼叫。