使用 PyDev 运行 Eclipse (Galileo)。我正在尝试使用模块 urllib2 并且我刚刚开始尝试使用它。我正在阅读的教程之一说在我的 urllib2.urlopen() 类上调用 geturl() 。所以我做到了,它按预期工作。
但是,当我尝试使用 Eclipse 方便的“ctrl+space”快捷方式浏览类方法时,我感到很惊讶,它只为我提供了我认为是基类的私有方法:
当我这样做时dir(page)
,我会得到各种可以玩的巧妙方法!
['__doc__', '__init__', '__iter__', '__module__', '__repr__', 'close', 'code', 'fileno', 'fp', 'getcode', 'geturl', 'headers', 'info', 'msg', 'next', 'read', 'readline', 'readlines', 'url']
这是一个 Eclipse 问题吗?还是用户错误?如果我把它放在 IDLE 中,我可以使用 IDLE 的自动完成功能来查看可用的方法,但是我无法获得与 PyDev 相同的功能;我相信它可以在我的工作电脑上运行,但我的家用电脑(我现在的电脑)似乎“不正常”。
我在 Google/Stackoverflow 上尽了最大努力,但我不确定哪些关键字会返回可能帮助我理解这里出了什么问题的结果。您可以提供的任何见解都会很棒!
(Python 2.6,在 Debian (#!) 虚拟环境中运行,windows7 主机 - 如果有任何问题)
注意:我只在 Debian 方面进行开发,所以我在 Win7 上没有 Eclipse。
更新1:
回答:“如果我向下滚动,浏览器会以什么结尾?” 它以subclasshook结束。请参阅下面的照片以了解列表底部的外观(这都是私人的,没有方法)。
更新2:
正如上一篇文章所建议的那样,我进入首选项菜单并检查了自动完成选项卡和解释器首选项选项卡,似乎没有什么不合适的(但是,在阅读了 pydev 自动完成文档之后,我没有看到任何关于 '防火墙'或任何表明存在防火墙的迹象。
但是,我做了另一个测试,见下图:
自动完成功能wx
工作得很好。也许我误解了在以前的帖子中告诉我的内容,但是,我理解我为我的page
班级看到魔术方法的原因是因为 PyDev 不知道还有什么可以填充它 - 所以它显然很困惑。我只是不确定从这里去哪里。我会继续阅读 PyDev 文档,看看我是否能在此期间弄清楚。
而且,我几乎忘记了——当我将鼠标“悬停”在代码中的 urllib2.urlopen() 上时,它确实显示了文档字符串。不确定这是否提供了有关此假定损坏功能的任何见解。
更新3:
根据某人关于“强制内置”仅在 PyDev 中自动完成的评论,我去并将“urllib2”添加到首选项下的强制内置。下面是我得到的图像......
我有一些新方法……但不是我预期的方法(即我没有看到__dict__
我调用时得到的方法dir(page)
,特别是 geturl())。