Python 像PDT一样使用PyDev完成技巧代码?
有没有办法通过告诉PyDev变量的类型来帮助它完成代码 使用PDT,您可以使用类似PHPDoc的语法来实现以下目的:Python 像PDT一样使用PyDev完成技巧代码?,python,pydev,code-completion,Python,Pydev,Code Completion,有没有办法通过告诉PyDev变量的类型来帮助它完成代码 使用PDT,您可以使用类似PHPDoc的语法来实现以下目的: /* @var $my_var MyClass */ $my_var = myFunction(); // PDT is able to figure out that $my_var is a MyClass object. 但到目前为止,我还不知道如何在python中实现同样的功能。没有(请参阅)。看起来PyDev完成了导入的内容和语言关键字 不过,这似乎不会出现太多问题。
/* @var $my_var MyClass */
$my_var = myFunction();
// PDT is able to figure out that $my_var is a MyClass object.
但到目前为止,我还不知道如何在python中实现同样的功能。没有(请参阅)。看起来PyDev完成了导入的内容和语言关键字
不过,这似乎不会出现太多问题。所讨论的变量似乎只有在作为没有默认值的函数参数传入时pydev才会知道。而且,如果您有一个在自己的类上运行的函数,它似乎应该是一个类成员(因此autocomplete已经可以工作) 实际上,如果执行assert-isinstance()操作,就可以 例如:
a=函数()
断言isinstance(a,MyClass)
a 断言技巧似乎不适合我使用Pydev2.2.2;还应该是吗?
然而,我尝试的另一个技巧是:
class Foo(object):
def __init__(self, bar):
self.bar = bar
# Tricking PyDev
if (not self.bar):
self.bar = Bar()
raise Exception("Bar should not be null")
在所有情况下,它看起来都很粗糙,我希望有一种更干净的方式来做事情(文档、注释等等)我不知道你为什么说它不会出现很多问题。正如你所说的,任何时候你把一个变量传递给一个方法,PyDev都无法猜测它的类型,除非它有一个默认值——但我要说的是,与没有默认参数的方法相比,有默认参数的方法是非常少的,不是吗?感谢分享这个方法——对我来说也很好(PyDev v2.5)<代码>断言isinstance
仅在同一方法中工作;它似乎没有将类型传播到实例变量中。的可能重复项
class Foo(object):
def __init__(self, bar):
self.bar = bar
# Tricking PyDev
if (not self.bar):
self.bar = Bar()
raise Exception("Bar should not be null")