# Réflexion

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

  Renvoie un dictionnaire des fonctions natives de la frame en cours d’exécution, ou si aucune frame n’est exécutée, les fonctions natives du thread indiqué par le thread state.

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

  Renvoie un dictionnaire des variables locales de la frame en cours d’exécution, ou NULL si aucune frame n’est en cours d’exécution.

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

  Renvoie un dictionnaire des variables globales de la frame en cours d’exécution ou NULL si aucune frame n’est en cours d’exécution.

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

  Renvoie la frame actuelle selon le thread state, qui est NULL si aucune frame n’est en cours d’exécution.

int `PyFrame_GetLineNumber`(PyFrameObject *frame)

  Renvoie le numéro de ligne que frame est en train d’exécuter

const char* `PyEval_GetFuncName`(PyObject *func)

  Renvoie le nom de func s’il s’agit d’une fonction, d’une classe ou d’un objet d’instance, sinon le nom du type de func

const char* `PyEval_GetFuncDesc`(PyObject *func)

  Renvoie une description en chaîne de caractères, en fonction du type de func. Les valeurs renvoyées peuvent être `"()"` pour les fonction et les méthodes, `\" constructor\"`, `\" instance\"`, `\" object\"`. Concaténé avec le résultat de `PyEval_GetFuncName()`, le résultat sera une description de func