反射¶
-
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 的描述。