有没有办法通过告诉它一个变量的类型来帮助PyDev代码完成?用PyDev像PDT一样完成代码?
随着PDT,可以使用PHPDoc的语法类似这样的目的:
/* @var $my_var MyClass */
$my_var = myFunction();
// PDT is able to figure out that $my_var is a MyClass object.
但是到现在为止,我无法弄清楚如何做相同的蟒蛇。
有没有办法通过告诉它一个变量的类型来帮助PyDev代码完成?用PyDev像PDT一样完成代码?
随着PDT,可以使用PHPDoc的语法类似这样的目的:
/* @var $my_var MyClass */
$my_var = myFunction();
// PDT is able to figure out that $my_var is a MyClass object.
但是到现在为止,我无法弄清楚如何做相同的蟒蛇。
其实,你可以,如果你做一个断言isinstance()
如:
a = function()
assert isinstance(a, MyClass)
a. <- would get the proper completions
注意Pydev的做分析的函数的返回,因此,它可能是它知道,在案件数量。
另外,如果你使用Python应该不会有运行时的处罚-O(这将删除该断言)
似乎断言招不为我用PyDev的2.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 v2.5)。 'assert isinstance'只在同一个方法内工作;它似乎不会将该类型传播到实例变量中。 – Justin 2012-05-17 12:42:23
[Pydev Code Completion for everything]的可能重复(http://stackoverflow.com/questions/6218778/pydev-code-completion-for-everything) – 2014-09-01 12:42:06