热线电话:13121318867

登录
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.0000
4
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子