出入栈简述
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 也被弹出栈顶 '''