python - PyDev/Eclipse/Python 没有显示一个类的所有方法

标签 python eclipse ide pydev

使用 PyDev 运行 Eclipse (Galileo)。我正在尝试使用模块 urllib2,并且我刚刚开始尝试使用它。我正在学习的其中一个教程说要在我的 urllib2.urlopen() 类上调用 geturl() 。所以我做到了,它按预期工作。

但是,当我尝试使用 Eclipse 便捷的“ctrl+space”快捷方式浏览类方法时,我感到很惊讶,它只为我提供了我认为是基类的私有(private)方法:

enter image description here

当我执行 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 结尾。查看下面的照片,了解列表底部的样子(都是私有(private)的,没有方法)。

enter image description here

更新 2:

正如之前的帖子所建议的那样,我进入了首选项菜单并检查了自动完成选项卡和解释器首选项选项卡,似乎没有什么不合适的地方(但话又说回来,在阅读了 pydev 自动完成文档之后,我没有看到任何东西关于“防火墙”或任何表明存在防火墙的迹象。

不过,我又做了一个测试,见下图:

enter image description here

wx 的自动完成功能工作得很好。也许我误解了以前的帖子中告诉我的内容,但是,我理解我看到我的 page 类的魔术方法的原因是因为 PyDev 不知道还有什么可以填充它- 所以它显然很困惑。我只是不确定从这里去哪里。我会继续阅读 PyDev 文档,看看我是否能同时弄清楚。

而且,我差点忘了 - 当我将鼠标“悬停”在代码中的 urllib2.urlopen() 上时,它确实向我显示了文档字符串。不确定这是否提供了关于这个假定的损坏功能的任何见解。

更新 3:

根据某人关于“强制内置”仅在 PyDev 中自动完成的评论,我将“urllib2”添加到首选项下的强制内置。下面是我得到的图像...

enter image description here

我有一些新方法...但不是我预期的方法(即当我调用 dir(page) 时,我没有看到从 __dict__ 得到的方法) ,特别是 geturl())。

最佳答案

其中大部分是 Python 的“魔术方法”:

http://www.rafekettler.com/magicmethods.html

它们是您可以在任何对象上定义以赋予其自定义行为的特殊方法。大多数 Python IDE 都知道不显示它们,但 Eclipse 尤其有用。

关于python - PyDev/Eclipse/Python 没有显示一个类的所有方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13755535/

相关文章:

python - 'int'对象没有属性python

Python 将 MySQL 表复制到 SQLite3

java - 在 eclipse 插件中获取两个 IFile 之间的差异

eclipse - 无法从 Eclipse 中启动 JBoss

ide - 如何通过注释折叠CLion中的自定义区域?

python - 在 Vim 中使用 ctags 导航 Python 模块?

Python - 解析字母和数字未被阻塞在一起的字符串

python - 在 Django 中注释现有模型对象

java - 为什么 Java 认为我的构造函数调用不明确?

android - 如何搭建安卓应用开发环境?