# Reflexão

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

  Retorna um dicionário dos componentes internos no quadro de execução atual ou o interpretador do estado do encadeamento, se nenhum quadro estiver em execução no momento.

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

  Retorna um dicionário das variáveis locais no quadro de execução atual ou `NULL` se nenhum quadro estiver sendo executado no momento.

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

  Retorna um dicionário das variáveis globais no quadro de execução atual ou `NULL` se nenhum quadro estiver sendo executado no momento.

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

  Retorna o quadro do estado atual da thread, que é `NULL` se nenhum quadro estiver em execução no momento.

int `PyFrame_GetLineNumber`(PyFrameObject *frame)

  Retorna o número da linha do frame atualmente em execução.

const char* `PyEval_GetFuncName`(PyObject *func)

  Retorna o nome de func se for uma função, classe ou objeto de instância, senão o nome do tipo da func.

const char* `PyEval_GetFuncDesc`(PyObject *func)

  Retorna uma sequência de caracteres de descrição, dependendo do tipo de func. Os valores de retorno incluem “()” para funções e métodos, “construtor”, “instância” e “objeto”. Concatenado com o resultado de `PyEval_GetFuncName()`, o resultado será uma descrição de func.