# Reflexión

PyObject* `PyEval_GetBuiltins`(void)
  Return value: Borrowed reference.

  Retorna un diccionario de las construcciones en el marco de ejecución actual, o el intérprete del estado del hilo si no se está ejecutando ningún marco actualmente.

PyObject* `PyEval_GetLocals`(void)
  Return value: Borrowed reference.

  Retorna un diccionario de las variables locales en el marco de ejecución actual, o `NULL` si actualmente no se está ejecutando ningún marco.

PyObject* `PyEval_GetGlobals`(void)
  Return value: Borrowed reference.

  Retorna un diccionario de las variables globales en el marco de ejecución actual, o `NULL` si actualmente no se está ejecutando ningún marco.

PyFrameObject* `PyEval_GetFrame`(void)
  Return value: Borrowed reference.

  Retorna el marco del estado del hilo actual, que es `NULL` si actualmente no se está ejecutando ningún marco.

  Vea también `PyThreadState_GetFrame()`.

PyFrameObject* `PyFrame_GetBack`(PyFrameObject *frame)

  Obtiene el frame siguiente marco (frame) exterior.

  Devuelve una referencia fuerte o `NULL` si frame no tiene un marco exterior.

  frame no debe ser `NULL`.

  Nuevo en la versión 3.9.

PyCodeObject* `PyFrame_GetCode`(PyFrameObject *frame)

  Obtiene el código frame.

  Retorna una referencia fuerte.

  frame no debe ser `NULL`. El resultado (código del marco) no puede ser `NULL`.

  Nuevo en la versión 3.9.

int `PyFrame_GetLineNumber`(PyFrameObject *frame)

  Retorna el número de línea que frame está ejecutando actualmente.

  frame no debe ser `NULL`.

const char* `PyEval_GetFuncName`(PyObject *func)

  Retorna el nombre de func si es una función, clase u objeto de instancia; de lo contrario, el nombre del tipo funcs.

const char* `PyEval_GetFuncDesc`(PyObject *func)

  Retorna una cadena de caracteres de descripción, según el tipo de func. Los valores de retorno incluyen «()» para funciones y métodos, «constructor», «instancia» y «objeto». Concatenado con el resultado de `PyEval_GetFuncName()`, el resultado será una descripción de func.