Frame Objects

type PyFrameObject

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

The C structure of the objects used to describe frame objects.

There are no public members in this structure.

在 3.11 版更改: The members of this structure were removed from the public C API. Refer to the What’s New entry for details.

The PyEval_GetFrame() and PyThreadState_GetFrame() functions can be used to get a frame object.

See also Reflection.

PyFrameObject *PyFrame_GetBack(PyFrameObject *frame)

Get the frame next outer frame.

Return a strong reference, or NULL if frame has no outer frame.

3.9 新版功能.

PyObject *PyFrame_GetBuiltins(PyFrameObject *frame)

Get the frame‘s f_builtins attribute.

Return a strong reference. The result cannot be NULL.

3.11 新版功能.

PyCodeObject *PyFrame_GetCode(PyFrameObject *frame)

Part of the Stable ABI since version 3.10.

Get the frame code.

Return a strong reference.

The result (frame code) cannot be NULL.

3.9 新版功能.

PyObject *PyFrame_GetGenerator(PyFrameObject *frame)

Get the generator, coroutine, or async generator that owns this frame, or NULL if this frame is not owned by a generator. Does not raise an exception, even if the return value is NULL.

Return a strong reference, or NULL.

3.11 新版功能.

PyObject *PyFrame_GetGlobals(PyFrameObject *frame)

Get the frame‘s f_globals attribute.

Return a strong reference. The result cannot be NULL.

3.11 新版功能.

int PyFrame_GetLasti(PyFrameObject *frame)

Get the frame‘s f_lasti attribute.

Returns -1 if frame.f_lasti is None.

3.11 新版功能.

PyObject *PyFrame_GetLocals(PyFrameObject *frame)

Get the frame‘s f_locals attribute (dict).

Return a strong reference.

3.11 新版功能.

int PyFrame_GetLineNumber(PyFrameObject *frame)

Part of the Stable ABI since version 3.10.

Return the line number that frame is currently executing.