Komodo Python自动完成:通过变量元数据进行类型推断?

2024-06-25 06:50:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用Komodo Edit进行Python开发,我想从自动完成中获得最佳效果。在

如果我这样做:

a = A()
a.

我可以看到a的成员名单

但如果我这么做:

^{pr2}$

它不起作用。我希望能够做到:

a = [A()]
b = a[0]
"""b

Type: A
"""
b.

那么我怎样才能告诉自动完成程序b是A型的呢?在


Tags: 程序typeeditkomodo效果pr2成员名单
2条回答

我认为你不会有太多的运气。问题是,在Python中静态推断变量的类型非常困难,除非是在最简单的情况下。通常直到运行时才知道类型,因此不可能自动完成。在

IDE做了一些静态分析,以找出最明显和最好的猜测,但我敢打赌它甚至没有尝试在容器中寻找元素。尽管我们可以计算出bA类型,但即使是对代码的微小变化也可能使其不可知,尤其是当它位于可变容器中时。在

顺便说一句,我已经在科莫多IDE上试过了,也没什么好的。我听说Wing IDE有很好的代码完成能力,但我不确定它还能做得更好。在

这并不能真正回答您的问题,但是使用Wing IDE可以使用assert isinstance(b, A)向类型分析器提供提示。见here。我还没有找到用Komodo实现的方法,不过显然在编写PHP或JavaScript时是possible。在

更新

我找到了一种方法来欺骗科莫多:

if 0: b=A()

这是可行的(至少在komodo5.2上是这样的),没有副作用,但是肯定会混淆任何人读你的代码。在

相关问题 更多 >