【发布时间】:2014-07-28 20:38:29
【问题描述】:
我将 python 嵌入到 C++ 应用程序中并编写了一个函数包装器(就像 boost::python 所做的那样)。为此,我创建了一个自定义 python 类型并定义了它的PyTypeObject 结构并设置了一个tp_call 函数指针。
这很好用,但现在我希望能够设置包装函数的文档。目前,当我在 Python 解释器中运行 help(some_function) 时,会打印一个通用文档。设置 PyTypeObject 结构的 tp_doc 并没有帮助,因为它为所有包装函数提供了相同的帮助字符串。
我也试过打电话
PyObject_SetAttrString((PyObject*)a_wrapped_function, "__doc__", PyUnicode_FromString("some doc"))
但是这个调用返回-1,这意味着失败(这个属性可能被认为是只读的)。
我考虑为每个包装函数创建一个新的PyTypeObject,但我还没有尝试过,因为我认为这可能是矫枉过正...
有没有一种很好的方法来告诉 Python 为每个包装函数返回的文档字符串?
【问题讨论】:
标签: python c python-3.x python-c-api