当我们执行递归函数时,会发现递归函数中调用递归之前的语句和递归之后的语句执行顺序是相反的。我们通过一个例子来看:
1、递归函数
def up_and_down(n):
print("Level " + str(n) + ":location " + str(id(n))) #1
if n<4:
up_and_down(n+1)
print("Level " + str(n) + ":location " + str(id(n))) #2
2、调用函数
def main():
up_and_down(1)
if __name__ == "__main__":
main()
3、输出结果
Level 1:location 94865315079104
Level 2:location 94865315079136
Level 3:location 94865315079168
Level 4:location 94865315079200
Level 4:location 94865315079200
Level 3:location 94865315079168
Level 2:location 94865315079136
Level 1:location 94865315079104
可以看到,main函数首先使用参数1调用了递归函数【up_and_down】,此时执行print语句输出【Level 1:location 94865315079104】。
接下来&#