我在名为的 Python C API 中发现了一个PyEval_CallFunction
似乎很有用的函数。它允许您通过说以下内容来调用 Python 可调用对象:
PyEval_CallFunction(obj, "OOO", a, b, c);
但是,我找不到有关此功能的任何官方文档。谷歌搜索带来了各种讨论此功能的非官方教程,但是:
该函数没有记录在官方 Python 文档中,所以我不知道它是否应该是公共 API 的一部分。
搜索网络会发现不一致的使用政策。一些教程指出格式字符串需要在类型列表周围加上括号,例如
"(OiiO)"
,而其他时候我看到它在没有括号的情况下使用。当我在实际程序中实际尝试该功能时,它似乎需要括号,否则会出现段错误。
我想使用这个功能,因为它很方便。有谁知道这件事,或者知道为什么没有记录?它是公共 API 的一部分吗?