出入栈简述

  

复制代码
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 @   晓枫的春天  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
历史上的今天:
2022-05-27 Spark 程序打包在集群运行
2021-05-27 解决:superset db upgrade时报错: ModuleNotFoundError: No module named 'dataclasses'
2021-05-27 Centos7 Conda HTTPError: HTTP 000 CONNECTION FAILED for url <https://mirrors.tuna.tsinghua.edu.cn/anaco
点击右上角即可分享
微信分享提示