输出应该是4,3,2,1,对吗?
def test(x):
if x > 0 :
test(x - 1)
print(x)
test(4)
#output => 1
#output => 2
#output => 3
#output => 4
这就是调用堆栈。代码被推送到调用堆栈,并在执行过程中弹出。这就是执行递归调用的地方。请参阅此以供参考https://www.freecodecamp.org/news/how-recursion-works-explained-with-flowcharts-and-a-video-de61f40cb7f9/
测试(4(生成测试(3(、测试(2(、测试"1",并推送到调用堆栈。正如我们所知,Stack是FILO(先进先出(。最后推送的递归指令将弹出并执行1的第一个结果打印。然后是2,3,最后是4。