Frame Objects

type PyFrameObject
Teil der Limited API (als opaker Struct).

Die C-Struktur der Objekte, die zur Beschreibung von Frame-Objekten verwendet werden.

Es gibt keine öffentlichen Mitglieder in dieser Struktur.

Geändert in Version 3.11: Die Mitglieder dieser Struktur wurden aus der öffentlichen C-API entfernt. Siehe den Eintrag in den Neuerungen für Details.

Die Funktionen PyEval_GetFrame() und PyThreadState_GetFrame() können verwendet werden, um ein Frame-Objekt zu erhalten.

Siehe auch Reflection.

PyTypeObject PyFrame_Type

Der Typ von Frame-Objekten. Es ist dasselbe Objekt wie types.FrameType in der Python-Schicht.

Geändert in Version 3.11: Zuvor war dieser Typ nur nach dem Einbinden von <frameobject.h> verfügbar.

int PyFrame_Check(PyObject *obj)

Gibt einen Wert ungleich Null zurück, wenn obj ein Frame-Objekt ist.

Geändert in Version 3.11: Zuvor war diese Funktion nur nach dem Einbinden von <frameobject.h> verfügbar.

PyFrameObject *PyFrame_GetBack(PyFrameObject *frame)
Rückgabewert: Neue Referenz.

Gibt den nächst äußeren Frame von frame zurück.

Gibt eine starke Referenz zurück oder NULL, wenn frame keinen äußeren Frame hat.

Hinzugefügt in Version 3.9.

PyObject *PyFrame_GetBuiltins(PyFrameObject *frame)
Rückgabewert: Neue Referenz.

Gibt das Attribut f_builtins des frame zurück.

Gibt eine starke Referenz zurück. Das Ergebnis kann nicht NULL sein.

Hinzugefügt in Version 3.11.

PyCodeObject *PyFrame_GetCode(PyFrameObject *frame)
Rückgabewert: Neue Referenz. Teil der Stable ABI seit Version 3.10.

Gibt den Code des frame zurück.

Gibt eine starke Referenz zurück.

Das Ergebnis (Frame-Code) kann nicht NULL sein.

Hinzugefügt in Version 3.9.

PyObject *PyFrame_GetGenerator(PyFrameObject *frame)
Rückgabewert: Neue Referenz.

Gibt den Generator, Coroutinen oder den asynchronen Generator zurück, der diesen Frame besitzt, oder NULL, wenn dieser Frame nicht von einem Generator besessen wird. Löst keine Ausnahme aus, auch wenn der Rückgabewert NULL ist.

Gibt eine starke Referenz oder NULL zurück.

Hinzugefügt in Version 3.11.

PyObject *PyFrame_GetGlobals(PyFrameObject *frame)
Rückgabewert: Neue Referenz.

Gibt das Attribut f_globals des frame zurück.

Gibt eine starke Referenz zurück. Das Ergebnis kann nicht NULL sein.

Hinzugefügt in Version 3.11.

int PyFrame_GetLasti(PyFrameObject *frame)

Gibt das Attribut f_lasti des frame zurück.

Gibt -1 zurück, wenn frame.f_lasti None ist.

Hinzugefügt in Version 3.11.

PyObject *PyFrame_GetVar(PyFrameObject *frame, PyObject *name)
Rückgabewert: Neue Referenz.

Gibt die Variable name von frame zurück.

  • Gibt eine starke Referenz auf den Variablenwert bei Erfolg zurück.

  • Löst NameError aus und gibt NULL zurück, wenn die Variable nicht existiert.

  • Löst eine Ausnahme aus und gibt NULL bei einem Fehler zurück.

Der Typ von name muss ein str sein.

Hinzugefügt in Version 3.12.

PyObject *PyFrame_GetVarString(PyFrameObject *frame, const char *name)
Rückgabewert: Neue Referenz.

Ähnlich wie PyFrame_GetVar(), aber der Variablenname ist ein C-String, der in UTF-8 kodiert ist.

Hinzugefügt in Version 3.12.

PyObject *PyFrame_GetLocals(PyFrameObject *frame)
Rückgabewert: Neue Referenz.

Gibt das Attribut f_locals des frame zurück. Wenn der Frame auf einen optimierten Geltungsbereich verweist, gibt dies ein schreibgeschütztes Proxy-Objekt zurück, das Änderungen an den lokalen Variablen ermöglicht. In allen anderen Fällen (Klassen, Module, exec(), eval()) gibt es die Abbildung zurück, die die Frame-Lokalen direkt darstellt (wie für locals() beschrieben).

Gibt eine starke Referenz zurück.

Hinzugefügt in Version 3.11.

Geändert in Version 3.13: Als Teil von PEP 667 wird eine Instanz von PyFrameLocalsProxy_Type zurückgegeben.

int PyFrame_GetLineNumber(PyFrameObject *frame)
Teil der Stable ABI seit Version 3.10.

Gibt die Zeilennummer zurück, die frame gerade ausführt.

Frame Locals Proxies

Hinzugefügt in Version 3.13.

Das Attribut f_locals eines Frame-Objekts ist eine Instanz eines „frame-locals proxy“. Das Proxy-Objekt stellt eine schreibgeschützte Ansicht des zugrundeliegenden lokalen Wörterbuchs für den Frame bereit. Dies stellt sicher, dass die von f_locals bereitgestellten Variablen immer auf dem neuesten Stand der Live-Lokalen im Frame selbst sind.

Weitere Informationen finden Sie in PEP 667.

PyTypeObject PyFrameLocalsProxy_Type

Der Typ von Frame locals() Proxy-Objekten.

int PyFrameLocalsProxy_Check(PyObject *obj)

Gibt einen Wert ungleich Null zurück, wenn obj ein Frame locals() Proxy ist.

Interne Frames

Sofern nicht PEP 523 verwendet wird, benötigen Sie dies nicht.

struct _PyInterpreterFrame

Die interne Frame-Darstellung des Interpreters.

Hinzugefügt in Version 3.11.

PyObject *PyUnstable_InterpreterFrame_GetCode(struct _PyInterpreterFrame *frame);
Dies ist eine Instabile API. Sie kann sich ohne Vorwarnung in kleineren Releases ändern.

Gibt eine starke Referenz auf das Code-Objekt für den Frame zurück.

Hinzugefügt in Version 3.12.

int PyUnstable_InterpreterFrame_GetLasti(struct _PyInterpreterFrame *frame);
Dies ist eine Instabile API. Sie kann sich ohne Vorwarnung in kleineren Releases ändern.

Gibt den Byte-Offset der zuletzt ausgeführten Anweisung zurück.

Hinzugefügt in Version 3.12.

int PyUnstable_InterpreterFrame_GetLine(struct _PyInterpreterFrame *frame);
Dies ist eine Instabile API. Sie kann sich ohne Vorwarnung in kleineren Releases ändern.

Gibt die aktuell ausgeführte Zeilennummer zurück oder -1, wenn keine Zeilennummer vorhanden ist.

Hinzugefügt in Version 3.12.