Ramobjekt

type PyFrameObject
En del av Begränsat API (som en ogenomskinlig struktur).

C-strukturen för de objekt som används för att beskriva ramobjekt.

Det finns inga offentliga medlemmar i denna struktur.

Ändrad i version 3.11: Medlemmarna i denna struktur har tagits bort från det publika C API:et. Se What’s New entry för detaljer.

Funktionerna PyEval_GetFrame() och PyThreadState_GetFrame() kan användas för att hämta ett frame-objekt.

Se även Reflection.

PyTypeObject PyFrame_Type

Typen av ramobjekt. Det är samma objekt som types.FrameType i Python-lagret.

Ändrad i version 3.11: Tidigare var denna typ endast tillgänglig efter inkludering av <frameobject.h>.

int PyFrame_Check(PyObject *obj)

Returnerar icke-noll om obj är ett ramobjekt.

Ändrad i version 3.11: Tidigare var denna funktion endast tillgänglig efter inkludering av <frameobject.h>.

PyFrameObject *PyFrame_GetBack(PyFrameObject *frame)
Returnera värde: Ny referens.

Hämta ramen nästa yttre ram.

Returnerar en strong reference, eller NULL om frame inte har någon yttre ram.

Tillagd i version 3.9.

PyObject *PyFrame_GetBuiltins(PyFrameObject *frame)
Returnera värde: Ny referens.

Hämta frame:s f_builtins-attribut.

Returnerar en strong reference. Resultatet kan inte vara NULL.

Tillagd i version 3.11.

PyCodeObject *PyFrame_GetCode(PyFrameObject *frame)
Returnera värde: Ny referens. En del av Stabil ABI sedan version 3.10.

Hämta frame-koden.

Returnera en strong reference.

Resultatet (ramkoden) kan inte vara NULL.

Tillagd i version 3.9.

PyObject *PyFrame_GetGenerator(PyFrameObject *frame)
Returnera värde: Ny referens.

Hämtar den generator, coroutine eller async-generator som äger denna ram, eller NULL om denna ram inte ägs av en generator. Ger inte upphov till något undantag, även om returvärdet är NULL.

Returnerar en strong reference, eller NULL.

Tillagd i version 3.11.

PyObject *PyFrame_GetGlobals(PyFrameObject *frame)
Returnera värde: Ny referens.

Hämta frame:s f_globals-attribut.

Returnerar en strong reference. Resultatet kan inte vara NULL.

Tillagd i version 3.11.

int PyFrame_GetLasti(PyFrameObject *frame)

Hämta frame:s f_lasti-attribut.

Returnerar -1 om frame.f_lasti är None.

Tillagd i version 3.11.

PyObject *PyFrame_GetVar(PyFrameObject *frame, PyObject *name)
Returnera värde: Ny referens.

Hämta variabeln namn för frame.

  • Returnerar en strong reference till variabelvärdet vid framgång.

  • Utlös NameError och returnera NULL om variabeln inte finns.

  • Utlös ett undantag och returnera NULL vid fel.

name-typen måste vara en str.

Tillagd i version 3.12.

PyObject *PyFrame_GetVarString(PyFrameObject *frame, const char *name)
Returnera värde: Ny referens.

Liknar PyFrame_GetVar(), men variabelnamnet är en C-sträng kodad i UTF-8.

Tillagd i version 3.12.

PyObject *PyFrame_GetLocals(PyFrameObject *frame)
Returnera värde: Ny referens.

Hämta ramens attribut f_locals. Om ramen refererar till en optimized scope, returneras ett skrivbart proxyobjekt som gör det möjligt att ändra de lokala värdena. I alla andra fall (klasser, moduler, exec(), eval()) returneras den mappning som representerar ramens lokala objekt direkt (enligt beskrivningen för locals()).

Returnera en strong reference.

Tillagd i version 3.11.

Ändrad i version 3.13: Som en del av PEP 667, returnera en instans av PyFrameLocalsProxy_Type.

int PyFrame_GetLineNumber(PyFrameObject *frame)
En del av Stabil ABI sedan version 3.10.

Returnerar radnumret som frame för närvarande exekverar.

Ram Lokaler Proxies

Tillagd i version 3.13.

Attributet f_locals på en frame object är en instans av en ”frame-locals proxy”. Proxyobjektet exponerar en skrivbar vy av den underliggande lokala ordlistan för ramen. Detta säkerställer att de variabler som exponeras av f_locals alltid är uppdaterade med de lokala variablerna i själva ramen.

Se PEP 667 för mer information.

PyTypeObject PyFrameLocalsProxy_Type

Typen av ram locals() proxyobjekt.

int PyFrameLocalsProxy_Check(PyObject *obj)

Returnerar icke-noll om obj är en ram locals()-proxy.

Interna ramar

Om du inte använder PEP 523 behöver du inte detta.

struct _PyInterpreterFrame

Tolkens interna ramrepresentation.

Tillagd i version 3.11.

PyObject *PyUnstable_InterpreterFrame_GetCode(struct _PyInterpreterFrame *frame);
Detta är Instabilt API. Den kan ändras utan förvarning i mindre versioner.

Returnera en strong reference till kodobjektet för ramen.

Tillagd i version 3.12.

int PyUnstable_InterpreterFrame_GetLasti(struct _PyInterpreterFrame *frame);
Detta är Instabilt API. Den kan ändras utan förvarning i mindre versioner.

Returnerar byte-offset i den senast utförda instruktionen.

Tillagd i version 3.12.

int PyUnstable_InterpreterFrame_GetLine(struct _PyInterpreterFrame *frame);
Detta är Instabilt API. Den kan ändras utan förvarning i mindre versioner.

Returnerar det aktuella radnumret, eller -1 om det inte finns något radnummer.

Tillagd i version 3.12.