gpt4 book ai didi

python - 是否有可能为绑定(bind)到 python 的 C++ 库获取绝地自动完成功能?

转载 作者:行者123 更新时间:2023-11-30 04:00:53 24 4
gpt4 key购买 nike

我正在使用 vim 和 jedi-vim 来编辑一些 python 代码。但是,我们使用的一些库是 C++ 共享库,我们使用 pybindgen 为其生成了 python 绑定(bind)。使用 jedi-vim 时,我没有获得任何类和方法的签名,只是它们的列表。

例如,在这个库中,https://github.com/jorisv/SpaceVecAlg如果我安装库并导入它:

import spacevecalg as sva

然后,sva. 将正确显示所有一阶函数和类。但是,如果我选择第一个,sva.ABInertia( jedi 将不会向我推荐任何类构造函数。

我想我必须以某种方式将类定义导出到一种 python 文档中,我想我可以为此使用 doxygen 注释,但我不知道如何将额外的文档提供给 jedi(或任何其他完成引擎,例如内置于 IPython 中的引擎)。

非常感谢!

最佳答案

您不能向 Jedi 提供额外的文档。但是,您可以以 Jedi 理解的方式设置 __doc__ 属性。如果您以与标准库相同的方式定义调用签名,我想它应该可以工作。

作为旁注,我必须提到在 Python 3.4+ 中有一种更好的定义文档字符串的方法。恕我直言,这是定义它的正确方法。我不确定具体该怎么做(但有一些方法可以使用它):

>>> inspect.signature(exit)
<inspect.Signature object at 0x7f2b5a05aa58>
>>> str(inspect.signature(exit))
'(code=None)'

Jedi现在还不懂,但以后肯定会。

关于python - 是否有可能为绑定(bind)到 python 的 C++ 库获取绝地自动完成功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26052450/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com