帧对象¶
- 
type PyFrameObject¶
-  属于 受限 API (作为不透明的结构体).用于描述帧对象的对象C结构体。 此结构体中无公有成员。 在 3.11 版本发生变更: 此结构体的成员已从公有 C API 中移除。 请参阅 What's New entry 了解详情。 
可以使用函数 PyEval_GetFrame() 与 PyThreadState_GetFrame() 去获取一个帧对象。
可参考:Reflection 1
- 
PyTypeObject PyFrame_Type¶
- 帧对象的类型。 它与 Python 层中的 - types.FrameType是同一对象。- 在 3.11 版本发生变更: 在之前版本中,此类型仅在包括 - <frameobject.h>之后可用。
- 
int PyFrame_Check(PyObject *obj)¶
- 如果 obj 是一个帧对象则返回非零值。 - 在 3.11 版本发生变更: 在之前版本中,只函数仅在包括 - <frameobject.h>之后可用。
- 
PyFrameObject *PyFrame_GetBack(PyFrameObject *frame)¶
- 获取 frame 为下一个外部帧。 - 返回一个 strong reference,或者如果 frame 没有外部帧则返回 - NULL。- 在 3.9 版本加入. 
- 
PyObject *PyFrame_GetBuiltins(PyFrameObject *frame)¶
- 获取 frame 的 - f_builtins属性。- 返回一个 strong reference。 此结果不可为 - NULL。- 在 3.11 版本加入. 
- 
PyCodeObject *PyFrame_GetCode(PyFrameObject *frame)¶
-  属于 稳定 ABI 自 3.10 版开始.获取 frame 的代码。 返回一个 strong reference。 结果(帧代码)不可为 NULL。在 3.9 版本加入. 
- 
PyObject *PyFrame_GetGenerator(PyFrameObject *frame)¶
- 获取拥有该帧的生成器、协程或异步生成器,或者如果该帧不被某个生成器所拥有则为 - NULL。 不会引发异常,即使其返回值为- NULL。- 返回一个 strong reference,或者 - NULL。- 在 3.11 版本加入. 
- 
PyObject *PyFrame_GetGlobals(PyFrameObject *frame)¶
- 获取 frame 的 - f_globals属性。- 返回一个 strong reference。 此结果不可为 - NULL。- 在 3.11 版本加入. 
- 
int PyFrame_GetLasti(PyFrameObject *frame)¶
- 获取 frame 的 - f_lasti属性。- 如果 - frame.f_lasti为- None则返回 -1。- 在 3.11 版本加入. 
- 
PyObject *PyFrame_GetVar(PyFrameObject *frame, PyObject *name)¶
- 获取 frame 的变量 name。 - 成功时返回一个指向变量值的 strong reference。 
- 引发 - NameError并返回- NULL如果该变量不存在。
- 引发异常并返回``NULL``错误。 
 - name 必须是 - str类型的。- 在 3.12 版本加入. 
- 
PyObject *PyFrame_GetVarString(PyFrameObject *frame, const char *name)¶
- 和 - PyFrame_GetVar()相似,但该变量名是一个使用 UTF-8 编码的 C 字符串。- 在 3.12 版本加入. 
- 
PyObject *PyFrame_GetLocals(PyFrameObject *frame)¶
- 获取 frame 的 - f_locals属性 (- dict)。- 返回一个 strong reference。 - 在 3.11 版本加入. 
- 
int PyFrame_GetLineNumber(PyFrameObject *frame)¶
-  属于 稳定 ABI 自 3.10 版开始.返回 frame 当前正在执行的行号。 
内部帧¶
除非使用:pep:523,否则你不会需要它。
- 
struct _PyInterpreterFrame¶
- 解释器的内部帧表示。 - 在 3.11 版本加入. 
- 
PyObject *PyUnstable_InterpreterFrame_GetCode(struct _PyInterpreterFrame *frame);¶
- 这是 不稳定 API。 它可能在微发布版中不带警告地改变。返回一个指向帧的代码对象的 strong reference。 在 3.12 版本加入. 
- 
int PyUnstable_InterpreterFrame_GetLasti(struct _PyInterpreterFrame *frame);¶
- 这是 不稳定 API。 它可能在微发布版中不带警告地改变。将字节偏移量返回到最后执行的指令中。 在 3.12 版本加入. 
- 
int PyUnstable_InterpreterFrame_GetLine(struct _PyInterpreterFrame *frame);¶
- 这是 不稳定 API。 它可能在微发布版中不带警告地改变。返回正在执行的指令的行数,如果没有行数,则返回-1。 在 3.12 版本加入.