专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

print公式原理_python

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/3/9 1:46:42       共计:3628 浏览

print公式原理?

print 函数原理如下:

import inspect

frame = None

def foo():

bar()

def bar():

global frame

frame = inspect.currentframe()

pass

# python解释器 python.exe 会用一个叫做PyEval_EvalFrameEx(c语言函数)去执行foo函数,首先会创建一个栈帧(stack frame),

"""

python在运行前会编译成字节码对象

当foo调用bar函数进,又会创建一个栈帧,

关键是所有的栈帧都是分配在堆内存, 堆内存有个特点,不手动释放,就会一直存在

这就决定了栈帧可以独立于调用者存在.

"""

# import dis

# print(dis.dis(foo)) # 查看foo函数的字节码

foo() #先调用一下foo函数 ,这个frame就有值.

print(frame.f_code.co_name) # bar 查看这个栈帧, bar 所以还是可以拿到bar的栈帧,然后就可以调用bar函数

caller_frame = frame.f_back # 当前frame栈帧的调用者的栈帧

print(caller_frame.f_code.co_name) # foo , 也可以拿到bar函数的栈帧

python中函数的调用就是创建栈帧的过程,而这些创建的栈帧都是存放在堆上面,不释放就永久存在,所以我们拿到每个函数对应的栈帧,就可以调用这个函数.

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:腾讯视频会员怎么用手机号登录_服务器 | ·下一条:我的世界游戏最厉害的boss是谁_服务器

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有