在许多情况下(例如函数参数),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)
我不支持这种特定的方法 - 它只是一个可以工作的系统的例子.同样,当然这不应该是强制性的 - 但有时缺乏提示类型的可能性是令人讨厌的.
我的问题可能很愚蠢,我希望有人成功地解决了这个问题.
有时我在自动完成框中看不到正确的建议(Eclipse 3.5.2,PyDev 1.5.7).例如:
import email
fp = open('my.eml', 'rb')
msg = email.message_from_file(fp)
Run Code Online (Sandbox Code Playgroud)
msg现在是一个Message对象.像get_payload()这样的函数运行正常.
msg.get_payload()
Run Code Online (Sandbox Code Playgroud)
但我没有进入get_payload()自动完成列表.
我认为PyDev不知道是什么msg,所以它不知道要展示什么.
也许我应该导入别的东西,而不仅仅是email模块?
提前致谢!
我是Python的新手,具有静态类型语言的背景,包括大量的Java.
在检查功能/流行度等之后,我决定在Eclipse中将PyDev作为IDE.
令我震惊的是,自动完成似乎对内置组件无法正常工作.例如,如果我在数据文件之后尝试automcomplete:
datafile = open(目录+"/"+ account,'r')数据文件.
没有提出有用的方法(例如,实际).只有像打电话的东西.
我习惯于通过跳入类定义并使用大量自动完成来快速查看类将执行的操作来学习语言.我的PyDev'解释器'设置得很好'强制内置'.
使用PyDev可以为内置程序自动完成吗?我是否接近IDE错误,即应该在侧面运行一个解释器并测试它的东西?到目前为止,IDE似乎很弱,例如IDLE在2分钟后在我的新mac上发布了.我很想知道Python开发人员在探索不熟悉的(内置)模块时所做的经验,因为这让我重新考虑我对Python的最初吸引力.我喜欢通过简单的探索学习的语言!
谢谢,