Frame objects
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 <pyframeobject-3.11-hiding>for details.
The PyEval_GetFrame and PyThreadState_GetFrame functions can be used to get a frame object.
See also Reflection <reflection>.
The type of frame objects. It is the same object as
types.FrameTypein the Python layer.3.11
Previously, this type was only available after including
<frameobject.h>.
Create a new frame object. This function returns a
strong referenceto the new frame object on success, and returnsNULLwith an exception set on failure.
Return non-zero if obj is a frame object.
3.11
Previously, this function was only available after including
<frameobject.h>.
Get the frame next outer frame.
Return a
strong reference, orNULLif frame has no outer frame. This raises no exceptions.3.9
Get the frame's
~frame.f_builtinsattribute.Return a
strong reference. The result cannot beNULL.3.11
Get the frame code.
Return a
strong reference.The result (frame code) cannot be
NULL.3.9
Get the generator, coroutine, or async generator that owns this frame, or
NULLif this frame is not owned by a generator. Does not raise an exception, even if the return value isNULL.Return a
strong reference, orNULL.3.11
Get the frame's
~frame.f_globalsattribute.Return a
strong reference. The result cannot beNULL.3.11
Get the frame's
~frame.f_lastiattribute.Returns -1 if
frame.f_lastiisNone.3.11
Get the variable name of frame.
- Return a
strong referenceto the variable value on success.- Raise
NameErrorand returnNULLif the variable does not exist.- Raise an exception and return
NULLon error.name type must be a
str.3.12
Similar to
PyFrame_GetVar, but the variable name is a C string encoded in UTF-8.3.12
Get the frame's
~frame.f_localsattribute. If the frame refers to anoptimized scope, this returns a write-through proxy object that allows modifying the locals. In all other cases (classes, modules,exec,eval) it returns the mapping representing the frame locals directly (as described forlocals).Return a
strong reference.3.11
3.13 As part of
667, return an instance ofPyFrameLocalsProxy_Type.
Return the line number that frame is currently executing.
Frame locals proxies
3.13
The ~frame.f_locals attribute on a frame object <frame-objects> is an instance of a "frame-locals proxy". The proxy object exposes a write-through view of the underlying locals dictionary for the frame. This ensures that the variables exposed by f_locals are always up to date with the live local variables in the frame itself.
See 667 for more information.
The type of frame
localsproxy objects.
Return non-zero if obj is a frame
localsproxy.
Legacy local variable APIs
These APIs are soft deprecated. As of Python 3.13, they do nothing. They exist solely for backwards compatibility.
Prior to Python 3.13, this function would copy the
~frame.f_localsattribute of f to the internal "fast" array of local variables, allowing changes in frame objects to be visible to the interpreter. If clear was true, this function would process variables that were unset in the locals dictionary.3.13 This function now does nothing.
Prior to Python 3.13, this function would copy the internal "fast" array of local variables (which is used by the interpreter) to the
~frame.f_localsattribute of f, allowing changes in local variables to be visible to frame objects.3.13 This function now does nothing.
Prior to Python 3.13, this function was similar to
PyFrame_FastToLocals, but would return0on success, and-1with an exception set on failure.3.13 This function now does nothing.
667
Internal frames
Unless using 523, you will not need this.
The interpreter's internal frame representation.
3.11
Return a
strong referenceto the code object for the frame.3.12
Return the byte offset into the last executed instruction.
3.12
Return the currently executing line number, or -1 if there is no line number.
3.12
谢谢你的反馈!