反射

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* 的描述。