# リフレクション

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

  現在の実行フレーム内のビルトインの辞書か、もし実行中のフレームがなければスレッド状態のインタプリタのビルトイン辞書を返します。

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

  現在の実行フレーム内のローカル変数の辞書か、実行中のフレームがなければ `NULL` を返します。

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

  現在の実行フレーム内のグローバル変数の辞書か、実行中のフレームがなければ `NULL` を返します。

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

  現在のスレッド状態のフレームを返します。現在実行中のフレームがなければ `NULL` を返します。

int `PyFrame_GetLineNumber`(PyFrameObject *frame)

  frame が現在実行している行番号を返します。

const char* `PyEval_GetFuncName`(PyObject *func)

  func が関数、クラス、インスタンスオブジェクトであればその名前を、そうでなければ func の型を返します。

const char* `PyEval_GetFuncDesc`(PyObject *func)

  func の型に依存する、解説文字列(description string)を返します。戻り値は、関数とメソッドに対しては "()", " constructor", " instance", " object" です。 `PyEval_GetFuncName()` と連結された結果、 func の解説になります。