我想了解当这个递归函数被调用时会发生什么。该代码应该是一个跟踪了解递归函数python
def mysum(lower, upper, margin):
blanks = ' ' * margin
print blanks, lower, upper
if lower > upper:
print blanks, 0
return 0
else:
result = lower + mysum(lower + 1, upper, margin + 4)
print blanks, result, lower, margin
return result
if __name__ == "__main__":
mysum(1, 4, 0)
输出读取
1 4
2 4
3 4
4 4
5 4
0
4 4 12
7 3 8
9 2 4
10 1 0
我不明白为什么功能开始开卷后返回0,你能不能帮我跟进会发生什么
我最初认为,在函数达到基本情况后,它会终止,我没有意识到它有一些其他调用留在调用堆栈 – diogenes