网络编程
位置:首页>> 网络编程>> Python编程>> 解读Python中的frame是什么

解读Python中的frame是什么

作者:程序之巅  发布时间:2023-09-26 08:25:50 

标签:Python,frame

Python中的frame是什么

栈帧(frame)

栈帧表示程序运行时函数调用栈中的某一帧。想要获得某个函数相关的栈帧,则必须在调用这个函数且这个函数尚未返回时获取。

可以使用sys模块的_getframe()函数、或inspect模块的currentframe()函数获取当前栈帧。

这里列出来的属性全部是只读的。

  • f_back: 调用栈的前一帧。

  • f_code: 栈帧对应的code对象。

  • f_locals: 用在当前栈帧时与内建函数locals()相同,但你可以先获取其他帧然后使用这个属性获取那个帧的locals()。

  • f_globals: 用在当前栈帧时与内建函数globals()相同,但你可以先获取其他帧……

示例: 假设在下面代码的第四行打断点

解读Python中的frame是什么

函数被断点停止住时刻的frame信息如下

解读Python中的frame是什么

Python的frame对象

Frame对象表示执行帧。它们可能出现在traceback对象中。

参考链接:

https://docs.python.org/2/reference/datamodel.html#objects-values-and-types

Frame对象可以用来获取Python运行过程中的函数调用堆栈,或者函数内部的各类信息

特殊的只读属性

属性说明
f_back前一个堆栈帧(朝向调用者),如果这是底部堆栈帧则为None
f_code在这个框架中执行的Code对象
f_locals用于查找局部变量的字典
f_globals用于全局变量
f_builtins用于内置名称
f_restricted表示该函数是否在限制执行模式下执行的标志
f_lasti给出精确的指令(这是代码对象的字节码字符串的索引)

特殊可写属性

f_trace、 f_exc_type、f_exc_value、f_exc_traceback、f_lineno

来源:https://blog.csdn.net/zhuguiqin1/article/details/79290244

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com