可以pydoc/帮助()隐藏的文件继承的类方法和属性?
-
27-09-2019 - |
题
当声明的一类继承一个具体的类别:
class C(dict):
added_attribute = 0
该文件类 C
列出了所有的方法 dict
(无论是通过 help(C)
或 pydoc
).
有没有一种方法来隐藏的继承的方法从自动生成的文件(文件串可以参照的基类,用于不复盖的方法)?或者是不可能的?
这将是有用的: pydoc
列出的功能,定义中的一个模块 后 其课程。因此,当类有一个很长的文件,很多不到有用的信息被印在新提供的功能模块,这使得文件更加难以利用(你已经跳过所有的文件继承的方法,直到达到特定的东西的模块正在记录).
解决方案
pydoc
和help
内置不支持这一点,但没有理由你不能写自己的工具(可能通过修改是pydoc的源),将得到你想要的行为。只是走在字典的类来获得本地定义的属性,然后寻找东西,有商务部作为一个属性。
其他提示
我有同样的问题和解决它对蟒蛇2.7.6Windows(86)通过增加3线pydoc.py.说明:
- 做你自己的复制的Lib\pydoc.py
找到所有出现的
inherited
变量 (3倍,在我数)的文件和 它设为一个空洞的名单 后右,定义。例如,我有线809:attrs,继承=_split_list(attrs,lambda t:t[2]是该类)
和写 inherited = []
在一个新的线以下。
现在它不打印继承方法了。
你可以给你一级元类特别的方法 __dir__
返回其自己的名单的属性。Pydoc将使用这个名单。
注:
- 这也会影响的行为
dir()
. - 在罕见的情况下,使用的元类已知的打开一个门户网站,一个地狱的层面。
不隶属于 StackOverflow