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*
