pydoc / help()可以隐藏继承的类方法和属性的文档吗?

时间:2010-05-18 12:35:49

标签: python class documentation pydoc

声明继承自特定类的类时:

class C(dict):
    added_attribute = 0

课程C的文档列出了dict的所有方法(通过help(C)pydoc)。

有没有办法从自动生成的文档中隐藏继承的方法(文档字符串可以引用基类,对于非重写方法)?还是不可能?

这很有用:pydoc列出类之后定义的函数。因此,当类具有非常长的文档时,在呈现模块提供的新功能之前会打印许多不太有用的信息,这使得文档更难以利用(您必须跳过继承方法的所有文档)直到你达到所记录模块的具体内容。)

3 个答案:

答案 0 :(得分:2)

pydochelp内置不支持这一点,但是没有理由你不能编写自己的工具(可能通过修改pydoc的源代码)来实现你想要的行为。只需走 dict 类来获取本地定义的属性,然后查找将 doc 作为属性的内容。

答案 1 :(得分:1)

我遇到了同样的问题,并通过向pydoc.py添加3行在Python 2.7.6 for Windows(x86)上解决了它。说明:

  1. 制作您自己的Lib \ pydoc.py
  2. 副本
  3. 查找文件中 inherited变量的所有出现次数(按我计算次数为3次),然后将其设置为空列表在定义之后。例如,我得到了第809行:

    attrs,inherited = _split_list(attrs,lambda t:t [2] is thisclass)

  4. 并在其下方的新行上写下inherited = []

    现在它不再打印继承的方法了。

答案 2 :(得分:0)

您可以使用返回其自己的属性列表的特殊方法__dir__为您的类提供元类。 Pydoc将使用此列表。

注意:

  • 这也会影响dir()
  • 的行为
  • 在极少数情况下,众所周知,使用元类会打开一个通向地狱的门户。