python 返回对象的绝地代码完成

python jedi code completion of returned object

我试图让 neovim 使用 jedi 来完成代码完成,但是当我开始对返回的对象进行代码完成时,我遇到了奇怪的行为。 jedi 似乎无法确定返回的对象类型,但在某些情况下可以。

为了防止我在我的配置中混淆了一些东西,我用 Atom 尝试了一下,它做的事情完全一样。

在第一张图片上,我开始了代码完成,jedi 识别了对象类型。第二个不是,但对我来说看起来完全一样。

也许任何人都可以提供帮助或以前遇到过同样的问题。

successful code completion

unsuccessful code completion

Python 中的类型推断很难。 Jedi 尽其所能,但有时无法推断类型。这通常是由于 setattr、元类、缓存和 Jedi 无法理解的其他一些东西造成的。

你上面的例子看起来像上面的例子。我一直都看到,每次看到它,这不是错误,只是......好吧......太难理解了。