# Reflection

PyObject *PyEval_GetBuiltins(void)
  回傳值：借用參照。 為 穩定 ABI 的一部分.

  在 3.13 版之後被棄用: Use `PyEval_GetFrameBuiltins()` instead.

  Return a dictionary of the builtins in the current execution frame, or the interpreter of the thread state if no frame is currently executing.

PyObject *PyEval_GetLocals(void)
  回傳值：借用參照。 為 穩定 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)
  回傳值：借用參照。 為 穩定 ABI 的一部分.

  在 3.13 版之後被棄用: Use `PyEval_GetFrameGlobals()` instead.

  Return a dictionary of the global variables in the current execution frame, or `NULL` if no frame is currently executing.

PyFrameObject *PyEval_GetFrame(void)
  回傳值：借用參照。 為 穩定 ABI 的一部分.

  Return the current thread state's frame, which is `NULL` if no frame is currently executing.

  另請見 `PyThreadState_GetFrame()`。

PyObject *PyEval_GetFrameBuiltins(void)
  回傳值：新的參照。 為 穩定 ABI 的一部分 自 3.13 版本開始.

  Return a dictionary of the builtins in the current execution frame, or the interpreter of the thread state if no frame is currently executing.

  在 3.13 版被加入.

PyObject *PyEval_GetFrameLocals(void)
  回傳值：新的參照。 為 穩定 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()`.

  在 3.13 版被加入.

PyObject *PyEval_GetFrameGlobals(void)
  回傳值：新的參照。 為 穩定 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.

  在 3.13 版被加入.

const char *PyEval_GetFuncName(PyObject *func)
  為 穩定 ABI 的一部分.

  Return the name of func if it is a function, class or instance object, else the name of funcs type.

const char *PyEval_GetFuncDesc(PyObject *func)
  為 穩定 ABI 的一部分.

  Return a description string, depending on the type of func. Return values include "()" for functions and methods, " constructor", " instance", and " object". Concatenated with the result of `PyEval_GetFuncName()`, the result will be a description of func.