Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 像PDT一样使用PyDev完成技巧代码?_Python_Pydev_Code Completion - Fatal编程技术网

Python 像PDT一样使用PyDev完成技巧代码?

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完成了导入的内容和语言关键字 不过,这似乎不会出现太多问题。

有没有办法通过告诉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完成了导入的内容和语言关键字


不过,这似乎不会出现太多问题。所讨论的变量似乎只有在作为没有默认值的函数参数传入时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")