声明继承自特定类的类时:
class C(dict):
added_attribute = 0
课程C
的文档列出了dict
的所有方法(通过help(C)
或pydoc
)。
有没有办法从自动生成的文档中隐藏继承的方法(文档字符串可以引用基类,对于非重写方法)?还是不可能?
这很有用:pydoc
列出在类之后定义的函数。因此,当类具有非常长的文档时,在呈现模块提供的新功能之前会打印许多不太有用的信息,这使得文档更难以利用(您必须跳过继承方法的所有文档)直到你达到所记录模块的具体内容。)
答案 0 :(得分:2)
pydoc
和help
内置不支持这一点,但是没有理由你不能编写自己的工具(可能通过修改pydoc的源代码)来实现你想要的行为。只需走 dict 类来获取本地定义的属性,然后查找将 doc 作为属性的内容。
答案 1 :(得分:1)
我遇到了同样的问题,并通过向pydoc.py添加3行在Python 2.7.6 for Windows(x86)上解决了它。说明:
查找文件中 inherited
变量的所有出现次数(按我计算次数为3次),然后将其设置为空列表在定义之后。例如,我得到了第809行:
attrs,inherited = _split_list(attrs,lambda t:t [2] is thisclass)
并在其下方的新行上写下inherited = []
。
现在它不再打印继承的方法了。
答案 2 :(得分:0)
您可以使用返回其自己的属性列表的特殊方法__dir__
为您的类提供元类。 Pydoc将使用此列表。
注意:
dir()
。