帧对象

type PyFrameObject
Part of the Limited API (as an opaque struct).

用于描述帧对象的对象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)

Get the frame's f_builtins attribute.

返回一个 strong reference。 此结果不可为 NULL

在 3.11 版本新加入.

PyCodeObject *PyFrame_GetCode(PyFrameObject *frame)
Part of the Stable ABI since version 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)

Get the frame's f_globals attribute.

返回一个 strong reference。 此结果不可为 NULL

在 3.11 版本新加入.

int PyFrame_GetLasti(PyFrameObject *frame)

Get the frame's f_lasti attribute.

如果 frame.f_lastiNone 则返回 -1。

在 3.11 版本新加入.

PyObject *PyFrame_GetLocals(PyFrameObject *frame)

Get the frame's f_locals attribute (dict).

返回一个 strong reference

在 3.11 版本新加入.

int PyFrame_GetLineNumber(PyFrameObject *frame)
Part of the Stable ABI since version 3.10.

返回 frame 当前正在执行的行号。