Jon*_*han 22 python eclipse pydev code-completion
在许多情况下(例如函数参数),Pydev不会静态地知道变量的类型.因此,代码完成(在.
使用之后或使用时ctrl+space
)不起作用.
在大多数情况下,您在设计软件时知道运行时的类型.有没有办法暗示Pydev正确编码完成它?
我想这可能需要特定的Pydev功能,或者甚至是新的Python PIP.
这实际上似乎是所有动态语言的一般问题......
更新:
也许有一个例子可以澄清:
def some_func(a_list, an_object):
a_list.app # Here I would not get code completion for append
Run Code Online (Sandbox Code Playgroud)
如果Pydev(或PIP)支持它,可以使用的示例:
from someobj import SomeObject
def some_func(a_list, an_object):
# typecast: a_list=list
# typecast: an_object=SomeObject
a_list.app # Now code completion would show append
Run Code Online (Sandbox Code Playgroud)
我不支持这种特定的方法 - 它只是一个可以工作的系统的例子.同样,当然这不应该是强制性的 - 但有时缺乏提示类型的可能性是令人讨厌的.
Fab*_*zny 22
[编辑]
从PyDev 2.8.0开始,它可以使用文档字符串和注释来发现对象的类型.
有关支持的格式的详细信息,请参阅:http://pydev.org/manual_adv_type_hints.html.
[在PyDev 2.8.0之前]
以前,它只支持assert isinstance调用(这仍然有效):
assert isinstance(a_list, list)
Run Code Online (Sandbox Code Playgroud)
PyDev将能够识别它并正确地为它提供代码完成(请注意,如果您发现它使代码变慢,您可以在没有断言的情况下运行Python:Python优化(-O或PYTHONOPTIMIZE)做什么?)
归档时间: |
|
查看次数: |
5761 次 |
最近记录: |