Objetos frame
*************

type PyFrameObject
    * Part of the Limited API (as an opaque struct).*

   La estructura C de los objetos utilizados para describir los
   objetos del frame.

   No hay miembros públicos en esta estructura.

   Distinto en la versión 3.11: Los miembros de esta estructura se han
   eliminado de la API pública de C. Consulte la entrada Novedades
   para más detalles.

Las funciones "PyEval_GetFrame()" y "PyThreadState_GetFrame()" pueden
utilizarse para obtener un objeto frame.

Véase también Reflexión.

PyTypeObject PyFrame_Type

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

   Distinto en la versión 3.11: Previously, this type was only
   available after including "<frameobject.h>".

int PyFrame_Check(PyObject *obj)

   Return non-zero if *obj* is a frame object.

   Distinto en la versión 3.11: Previously, this function was only
   available after including "<frameobject.h>".

PyFrameObject *PyFrame_GetBack(PyFrameObject *frame)

   Obtiene el *frame* exterior siguiente.

   Retorna una *strong reference*, o "NULL" si *frame* no tiene frame
   exterior.

   Added in version 3.9.

PyObject *PyFrame_GetBuiltins(PyFrameObject *frame)

   Get the *frame*'s "f_builtins" attribute.

   Retorna una *strong reference*, o "NULL" si *frame* no tiene frame
   exterior.

   Added in version 3.11.

PyCodeObject *PyFrame_GetCode(PyFrameObject *frame)
    * Part of the Stable ABI since version 3.10.*

   Obtenga el código *frame*.

   Retorna un *strong reference*.

   El resultado (frame code) no puede ser "NULL".

   Added in version 3.9.

PyObject *PyFrame_GetGenerator(PyFrameObject *frame)

   Obtiene el generador, rutina o generador asíncrono al que pertenece
   este frame, o "NULL" si este frame no es propiedad de un generador.
   No lanza una excepción, incluso si el valor de retorno es "NULL".

   Retorna un *strong reference*, o "NULL".

   Added in version 3.11.

PyObject *PyFrame_GetGlobals(PyFrameObject *frame)

   Get the *frame*'s "f_globals" attribute.

   Retorna una *strong reference*, o "NULL" si *frame* no tiene frame
   exterior.

   Added in version 3.11.

int PyFrame_GetLasti(PyFrameObject *frame)

   Get the *frame*'s "f_lasti" attribute.

   Retorna -1 si "frame.f_lasti" es "None".

   Added in version 3.11.

PyObject *PyFrame_GetVar(PyFrameObject *frame, PyObject *name)

   Get the variable *name* of *frame*.

   * Return a *strong reference* to the variable value on success.

   * Raise "NameError" and return "NULL" if the variable does not
     exist.

   * Raise an exception and return "NULL" on error.

   *name* type must be a "str".

   Added in version 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.

   Added in version 3.12.

PyObject *PyFrame_GetLocals(PyFrameObject *frame)

   Get the *frame*'s "f_locals" attribute ("dict").

   Retorna un *strong reference*.

   Added in version 3.11.

int PyFrame_GetLineNumber(PyFrameObject *frame)
    * Part of the Stable ABI since version 3.10.*

   Retorna el número de línea en la que se está ejecutando el *frame*.


Internal Frames
===============

Unless using **PEP 523**, you will not need this.

struct _PyInterpreterFrame

   The interpreter's internal frame representation.

   Added in version 3.11.

PyObject *PyUnstable_InterpreterFrame_GetCode(struct _PyInterpreterFrame *frame);

   *This is Unstable API. It may change without warning in minor
   releases.*

      Return a *strong reference* to the code object for the frame.

   Added in version 3.12.

int PyUnstable_InterpreterFrame_GetLasti(struct _PyInterpreterFrame *frame);

   *This is Unstable API. It may change without warning in minor
   releases.*

   Return the byte offset into the last executed instruction.

   Added in version 3.12.

int PyUnstable_InterpreterFrame_GetLine(struct _PyInterpreterFrame *frame);

   *This is Unstable API. It may change without warning in minor
   releases.*

   Return the currently executing line number, or -1 if there is no
   line number.

   Added in version 3.12.
