Python之函数进阶-函数执行原理
函数执行流程
- C语言中,函数的活动和栈有关。
- 栈是后进先出的数据结构。栈是由底端向顶端生长,栈顶加入数据成为压栈、入栈、栈顶弹出数据称为出栈。
def add(x, y):
r = x + y
print(r)
return r
def main():
a = 1
r = add(a, 2)
return r
# 在heap堆中,创建了2个函数对象,add指向函数对象(运行的指令)、main
# 函数调用会在栈中,生成关于 当前函数活动 所需要的内存空间,这个空间称为栈帧stack frame
main()
# main函数调用,会压栈创建栈帧
# a压栈
# add函数调用,压栈创建栈帧
# x y 入栈
# 计算r入栈
# 返回结果:3
# 返回结果:3