1

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

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

import spacevecalg as sva

然后,sva.将正确显示所有一阶函数和类。但是,如果我选择第一个,sva.ABInertia(绝地不会建议我使用任何类构造函数。

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

非常感谢 !

4

1 回答 1

2

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

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

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

绝地还不明白,但将来肯定会。

于 2014-09-26T09:25:12.680 回答