gpt4 book ai didi

python - 是否存在一种 Python IDE,允许模拟类似 C# 的智能感知,以自动完成对象上的方法调用?

转载 作者:行者123 更新时间:2023-12-01 06:06:58 26 4
gpt4 key购买 nike

例如,假设我有代码:

class Foo(object):
def bar(self, x):
'''blah blah blah'''
return x+1

假设我正在创建另一个类,它有一个方法,该方法采用 Foo 对象的实例并执行某些操作:

class Baz(object):
def goo(self, foo):
foo.bar(1) ### I am a 'Foo' object. Auto-complete me, please

如果在 Baz 类中创建 goo() 方法时输入 foo. 后,IDE 将为我提供智能感知,我会非常喜欢。你知道,显示 Foo 类的可用方法、它们的参数、它们的文档等。

在 C# 中,我必须声明参数“foo”的类型为“Foo”,因此自动完成很简单。

我意识到 Python 是动态类型的,因此任何 IDE 都无法知道“foo”参数的类型为 Foo。但是,某些 IDE 是否可以使用其他一些信息、指令或约定来确定类型……严格来说是为了智能感知和自动完成?

我发现的一个解决方法是输入 Foo.,这将导致大多数 IDE 显示 Foo 中方法的智能感知。这很有用,但并不完全是我想要的。

另一个解决方法是输入 foo = Foo(),然后像平常一样使用 foo。某些 IDE 会嗅探 foo 的类型为 Foo 并提供智能感知。但是你必须记住删除行 foo = Foo(),否则你就会遇到一个严重的错误。

也许,有更好的方法来完成我想做的事情。我使用 C# 智能感知作为引用点,也许这是 Visual Studio 的事情,而在编写 Python 代码时,我应该敞开心扉,以不同的方式完成类似的事情。任何建议将不胜感激。我确信我不是唯一一个渴望 Python 对象智能感知的人。

最佳答案

如果你只有 def goo(self, foo): 而没有人调用它,则无法知道 foo 是什么类型。但是,如果您在代码中使用已知的 Foo 调用 goo,则 IDE 可以确定 goo 始终传递一个 Foo 和自动完成功能可以工作。 Python Tools for Visual Studio就是这样的有效。

请注意,但这并不是很有用,因为它要求您在实际编写函数之前编写调用该函数的代码。这是一个片段,表明如果您明确说明它会起作用:Autocomplete demonstration

关于python - 是否存在一种 Python IDE,允许模拟类似 C# 的智能感知,以自动完成对象上的方法调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7578074/

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