出入栈简述

  

def greet(name):
    print(f'hello {name} !')
    greet2(name)
    print(f'getting read to say bey...')
    bey()

def greet2(name):
    print(f'How are you, {name}')
def bey():
    print('Ok bey')

greet('旺财')
''' 
greet('旺财') 执行过程
首先调用 greet 函数,入参 name = '旺财', 
greet 函数和临时变量 name = '旺财' 被压入栈,此时栈顶是 greet函数
执行 greet 函数的 print 语句:print(f'hello {name} !')
接下来 直接调用 greet2 函数,入参 name = '旺财'
此时栈顶位置是 greet2,greet 位于次栈顶位置
注意此时 greet 函数并未执行完毕,而是处于暂停状态
当 greet2 函数执行完毕后,greet2 出栈,栈顶现在是 greet,greet 函数继续执行下一条指令
bey()  函数开始执行,此时栈顶是 bey ,greet 再次回归 次栈顶位置
当 bey 函数执行完内部的打印语句后, 执行完毕后,bey 从栈顶弹出,greet 函数回到栈顶执行
greet 完成执行,greet 也被弹出栈顶
'''

 

posted @ 2023-05-27 08:42  晓枫的春天  阅读(9)  评论(0编辑  收藏  举报