Frame Objects

type PyFrameObject
属于 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 了解细节。

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

另请参阅 反射 .

PyTypeObject PyFrame_Type

The type of frame objects. It is the same object as types.FrameType 在 Python 层。

3.11 版改变: Previously, this type was only available after including <frameobject.h> .

int PyFrame_Check ( PyObject * obj )

Return non-zero if obj is a frame object.

3.11 版改变: Previously, this function was only available after including <frameobject.h> .

PyFrameObject * PyFrame_GetBack ( PyFrameObject * frame )

获取 frame next outer frame.

返回 强引用 ,或 NULL if frame has no outer frame.

Added in version 3.9.

PyObject * PyFrame_GetBuiltins ( PyFrameObject * frame )

获取 frame ’s f_builtins 属性。

返回 强引用 . The result cannot be NULL .

Added in version 3.11.

PyCodeObject * PyFrame_GetCode ( PyFrameObject * frame )
属于 稳定 ABI (应用程序二进制接口) since version 3.10.

获取 frame 代码。

返回 强引用 .

The result (frame code) cannot be NULL .

Added in version 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 .

返回 强引用 ,或 NULL .

Added in version 3.11.

PyObject * PyFrame_GetGlobals ( PyFrameObject * frame )

获取 frame ’s f_globals 属性。

返回 强引用 . The result cannot be NULL .

Added in version 3.11.

int PyFrame_GetLasti ( PyFrameObject * frame )

获取 frame ’s f_lasti 属性。

返回 -1,若 frame.f_lasti is None .

Added in version 3.11.

PyObject * PyFrame_GetVar ( PyFrameObject * frame , PyObject * name )

Get the variable name of frame .

  • 返回 强引用 to the variable value on success.

  • 引发 NameError 并返回 NULL if the variable does not exist.

  • Raise an exception and return NULL 当出错时。

name type must be a str .

3.12 版添加。

PyObject * PyFrame_GetVarString ( PyFrameObject * frame , const char * name )

类似于 PyFrame_GetVar() , but the variable name is a C string encoded in UTF-8.

3.12 版添加。

PyObject * PyFrame_GetLocals ( PyFrameObject * frame )

获取 frame ’s f_locals attribute ( dict ).

返回 强引用 .

Added in version 3.11.

int PyFrame_GetLineNumber ( PyFrameObject * frame )
属于 稳定 ABI (应用程序二进制接口) since version 3.10.

Return the line number that frame is currently executing.

Internal Frames

Unless using PEP 523 , you will not need this.

struct _PyInterpreterFrame

The interpreter’s internal frame representation.

Added in version 3.11.

PyObject * PyUnstable_InterpreterFrame_GetCode ( struct _PyInterpreterFrame * frame ) ;
这为 Unstable API . It may change without warning in minor releases.

返回 强引用 to the code object for the frame.

3.12 版添加。

int PyUnstable_InterpreterFrame_GetLasti ( struct _PyInterpreterFrame * frame ) ;
这为 Unstable API . It may change without warning in minor releases.

Return the byte offset into the last executed instruction.

3.12 版添加。

int PyUnstable_InterpreterFrame_GetLine ( struct _PyInterpreterFrame * frame ) ;
这为 Unstable API . It may change without warning in minor releases.

Return the currently executing line number, or -1 if there is no line number.

3.12 版添加。

内容表

上一话题

胶囊

下一话题

生成器对象

本页