Frame 物件

type PyFrameObject
受限 API 的一部分 (做為一個不透明結構 (opaque struct)).

用來描述 frame 物件的 C 結構。

在這個結構中沒有公開的成員。

在 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.

另請參閱 Reflection

PyTypeObject PyFrame_Type

The type of frame objects. It is the same object as types.FrameType in the Python layer.

在 3.11 版的變更: Previously, this type was only available after including <frameobject.h>.

PyFrameObject *PyFrame_New(PyThreadState *tstate, PyCodeObject *code, PyObject *globals, PyObject *locals)

Create a new frame object. This function returns a strong reference to the new frame object on success, and returns NULL with an exception set on failure.

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)
回傳值:新的參照。

Get the frame next outer frame.

回傳一個 strong reference,如果 frame 沒有外層 frame 則回傳 NULL。此函式不會引發例外。

在 3.9 版被加入.

PyObject *PyFrame_GetBuiltins(PyFrameObject *frame)
回傳值:新的參照。

取得 framef_builtins 屬性。

回傳 strong reference。結果不能為 NULL

在 3.11 版被加入.

PyCodeObject *PyFrame_GetCode(PyFrameObject *frame)
回傳值:新的參照。穩定 ABI 的一部分 自 3.10 版本開始.

Get the frame code.

回傳 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.

回傳 strong referenceNULL

在 3.11 版被加入.

PyObject *PyFrame_GetGlobals(PyFrameObject *frame)
回傳值:新的參照。

取得 framef_globals 屬性。

回傳 strong reference。結果不能為 NULL

在 3.11 版被加入.

int PyFrame_GetLasti(PyFrameObject *frame)

取得 framef_lasti 屬性。

如果 frame.f_lastiNone 則回傳 -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)
回傳值:新的參照。

Similar to PyFrame_GetVar(), but the variable name is a C string encoded in UTF-8.

在 3.12 版被加入.

PyObject *PyFrame_GetLocals(PyFrameObject *frame)
回傳值:新的參照。

Get the frame's