gpt4 book ai didi

ide - 具有代码完成功能的 python IDE,包括参数对象类型推断

转载 作者:行者123 更新时间:2023-12-04 17:39:26 25 4
gpt4 key购买 nike

我已经测试了各种 Python IDE 的代码完成功能。是否存在可以在以下情况下完成代码完成:

def foo(x):
print x.read() // remove this line, and type in "print x."

def main():
n = open("c:\\python27\\test.py");
foo(n)

IDE 必须确定 foo 在当前模块的某处被调用,其参数是对 open() 的调用的返回值,它必须假设是对 file.open 的调用。 ,因此,返回一个文件对象。因此, x.后跟 Ctrl+Space 将调用代码完成并显示 x 作为文件对象可以支持任何文件对象方法,包括 read() .

例如,我发现 PyScripter 可以做到这一点:
    n = open("c:\\python27\\test.py");
n. // hit <ctrl+space> after n.

上述代码完成场景之所以有效,是因为 PyScripter 执行了一些特殊的代码完成逻辑来确定 n 是一个文件对象,但似乎没有一种方法可以从静态分析中推断出对象类型或可用方法,从而推断出类型的参数。

其次,如果在 Python 2.x 和 Python 3.x 中都没有这样的功能,既然有静态类型提示,那么是否有任何 IDE 支持它们?
   def foo(x:'file'):
print x.read() // remove this line, and type in "print x." and hit ctrl+space

最佳答案

我认为(几乎)唯一能做到的就是 PyCharm

但是你必须给它一些提示:

Python2

如果您使用的是 Python 3,IDE 将检查函数注释,如下所示:

Python3

(文件类已从 python 3 中删除,所以我用字符串做了一个示例)

它不是免费的 IDE,但恕我直言,它拥有最好的代码完成功能。

关于ide - 具有代码完成功能的 python IDE,包括参数对象类型推断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7768825/

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