反射

PyObject *PyEval_GetBuiltins(void)
返回值:借用引用。 稳定 ABI 的一部分。

自 3.13 版本起已弃用:请改用 PyEval_GetFrameBuiltins()

返回当前执行帧中的内置字典,如果当前没有执行帧,则返回线程状态的解释器。

PyObject *PyEval_GetLocals(void)
返回值:借用引用。 稳定 ABI 的一部分。

自 3.13 版本起已弃用:使用 PyEval_GetFrameLocals() 以获得与在 Python 代码中调用 locals() 相同的行为,或者在 PyEval_GetFrame() 的结果上调用 PyFrame_GetLocals() 来访问当前执行帧的 f_locals 属性。

返回一个映射,提供对当前执行帧中局部变量的访问,如果当前没有执行帧,则返回 NULL

有关不同作用域返回的映射的详细信息,请参阅 locals()

由于此函数返回一个 借用引用,因此为 优化作用域 返回的字典缓存在帧对象上,并且只要帧对象存在,它就会保持活动状态。与 PyEval_GetFrameLocals()locals() 不同,在同一帧中后续调用此函数将更新缓存字典的内容,以反映局部变量状态的变化,而不是返回新的快照。

在 3.13 版本中更改:作为 PEP 667 的一部分,PyFrame_GetLocals()locals()FrameType.f_locals 不再使用共享缓存字典。有关更多详细信息,请参阅 新增功能条目

PyObject *PyEval_GetGlobals(void)
返回值:借用引用。 稳定 ABI 的一部分。

自 3.13 版本起已弃用:请改用 PyEval_GetFrameGlobals()

返回当前执行帧中的全局变量字典,如果当前没有执行帧,则返回 NULL

PyFrameObject *PyEval_GetFrame(void)
返回值:借用引用。 稳定 ABI 的一部分。

返回当前线程状态的帧,如果当前没有执行帧,则返回 NULL

另请参阅 PyThreadState_GetFrame()

PyObject *PyEval_GetFrameBuiltins(void)
返回值:新引用。 自 3.13 版本起成为 稳定 ABI 的一部分。

返回当前执行帧中的内置字典,如果当前没有执行帧,则返回线程状态的解释器。

在 3.13 版本中添加。

PyObject *PyEval_GetFrameLocals(void)
返回值:新引用。 自 3.13 版本起成为 稳定 ABI 的一部分。

返回当前执行帧中的局部变量字典,如果当前没有执行帧,则返回 NULL。等效于在 Python 代码中调用 locals()

要在不创建 优化作用域 中独立快照的情况下访问当前帧的 f_locals,请在 PyEval_GetFrame() 的结果上调用 PyFrame_GetLocals()

在 3.13 版本中添加。

PyObject *PyEval_GetFrameGlobals(void)
返回值:新引用。 自 3.13 版本起成为 稳定 ABI 的一部分。

返回当前执行帧中的全局变量字典,如果当前没有执行帧,则返回 NULL。等效于在 Python 代码中调用 globals()

在 3.13 版本中添加。

const char *PyEval_GetFuncName(PyObject *func)
属于 稳定 ABI 的一部分。

如果 func 是函数、类或实例对象,则返回其名称,否则返回 func 类型名称。

const char *PyEval_GetFuncDesc(PyObject *func)
属于 稳定 ABI 的一部分。

返回一个描述字符串,具体取决于 func 的类型。返回值包括函数的“()”和方法,“ constructor”、“ instance”和“ object”。与 PyEval_GetFuncName() 的结果连接后,该结果将是对 func 的描述。