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 ärNULL
.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
ärNone
.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 returneraNULL
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örlocals()
).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.
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.