python源码,_getframe函数的应用?
栈帧对象 PyFrameObject 中保存着 Python 运行时信息,在底层执行流控制以及程序调试中非常有用。那么,在 Python 代码层面,有没有办法获得栈帧对象呢?答案是肯定的。调用标准库 sys 模块中的 _getframe 函数,即可获得当前栈帧对象
上面是讲python源码的资料,这里说的在底层执行流控制,什么意思呢?高手 们能举例说明下应用场景吗?说在程序调试中非常有用,我也没有体会。可具体说说吗?
回答:
每当发生函数调用就会创建一个栈桢入栈,函数调用结束则栈桢出栈。
如下图,左侧红圈是PyCharm的添加断点调试时的Frames,右侧是代码中sys._getframe()
获取的栈桢。发生异常时,通常会将栈中所有数据输出到日志,这样很方便最终到那个函数出现异常。而当前栈桢中,存放着与当前函数所有相关的数据。
本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。
以上是 python源码,_getframe函数的应用? 的全部内容, 来源链接: utcz.com/p/938623.html