2019-04-19
阅读量:
585
递归函数
def foo1(b,b1=3):
print("foo1 called",b,b1)
def foo2(c):
foo3(c)
print("foo2 called",c)
def foo3(d):
print("foo3 called",d)
def main():
print("main called")
foo1(100,101)
foo2(200)
print("main ending")
main()
全局帧中生成foo1,foo2,foo3,main函数对象
main函数调用
main中查找内建函数print压栈,将常量字符串压栈,调用函数,弹出栈顶
main中全局查找函数foo1压栈,将常量100,101压栈,调用函数f001,创建栈帧.print函数压栈,字符串和变量b,b1压栈,调用函数,弹出栈顶,返回值.
main中全局查找f002函数压栈,将长脸200压栈,调用f002,创建栈帧.f003函数压栈,变量c引用压栈,调用foo3,创建栈帧.foo3完成print函数调用后返回.foo2恢复调用,自行print后,返回值.main中oo2调用结束弹出栈顶,main继续执行print函数调用,弹出栈顶.main函数返回






评论(0)


暂无数据
推荐帖子
2条评论
6条评论
7条评论