# リフレクション

PyObject *PyEval_GetBuiltins(void)
  戻り値: 借用参照。 次に属します: Stable ABI.

  バージョン 3.13 で非推奨: Use `PyEval_GetFrameBuiltins()` instead.

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

PyObject *PyEval_GetLocals(void)
  戻り値: 借用参照。 次に属します: Stable ABI.

  バージョン 3.13 で非推奨: Use either `PyEval_GetFrameLocals()` to obtain the same behaviour as calling `locals()` in Python code, or else call `PyFrame_GetLocals()` on the result of `PyEval_GetFrame()` to access the `f_locals` attribute of the currently executing frame.

  Return a mapping providing access to the local variables in the current execution frame, or `NULL` if no frame is currently executing.

  Refer to `locals()` for details of the mapping returned at different scopes.

  As this function returns a borrowed reference, the dictionary returned for optimized scopes is cached on the frame object and will remain alive as long as the frame object does. Unlike `PyEval_GetFrameLocals()` and `locals()`, subsequent calls to this function in the same frame will update the contents of the cached dictionary to reflect changes in the state of the local variables rather than returning a new snapshot.

  バージョン 3.13 で変更: As part of PEP 667, `PyFrame_GetLocals()`, `locals()`, and `FrameType.f_locals` no longer make use of the shared cache dictionary. Refer to the What's New entry for additional details.

PyObject *PyEval_GetGlobals(void)
  戻り値: 借用参照。 次に属します: Stable ABI.

  バージョン 3.13 で非推奨: Use `PyEval_GetFrameGlobals()` instead.

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

PyFrameObject *PyEval_GetFrame(void)
  戻り値: 借用参照。 次に属します: Stable ABI.

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

  See also `PyThreadState_GetFrame()`.

PyObject *PyEval_GetFrameBuiltins(void)
  戻り値: 新しい参照。 次に属します: Stable ABI (バージョン 3.13 より).

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

  Added in version 3.13.

PyObject *PyEval_GetFrameLocals(void)
  戻り値: 新しい参照。 次に属します: Stable ABI (バージョン 3.13 より).

  Return a dictionary of the local variables in the current execution frame, or `NULL` if no frame is currently executing. Equivalent to calling `locals()` in Python code.

  To access `f_locals` on the current frame without making an independent snapshot in optimized scopes, call `PyFrame_GetLocals()` on the result of `PyEval_GetFrame()`.

  Added in version 3.13.

PyObject *PyEval_GetFrameGlobals(void)
  戻り値: 新しい参照。 次に属します: Stable ABI (バージョン 3.13 より).

  Return a dictionary of the global variables in the current execution frame, or `NULL` if no frame is currently executing. Equivalent to calling `globals()` in Python code.

  Added in version 3.13.

const char *PyEval_GetFuncName(PyObject *func)
  次に属します: Stable ABI.

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

const char *PyEval_GetFuncDesc(PyObject *func)
  次に属します: Stable ABI.

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