gpt4 book ai didi

python - 在子类文档字符串中抑制 "Methods inherited by base class"

转载 作者:太空宇宙 更新时间:2023-11-04 02:24:49 25 4
gpt4 key购买 nike

我正在对一个具有大量方法和长文档字符串的类进行子类化。如果我调用 IPython 帮助函数,我会看到原始类的所有帮助。我想这是预料之中的,有没有办法抑制它?我只想查看我重新定义的方法。

mymodule.py 是:

import matplotlib.axes
class MySubclass(matplotlib.axes.Axes):
pass

如果我在 IPython 中这样做:

import mymodule
help(mymodule)

打印输出很大,因为它包含所有“从 matplotlib.axes._axes.Axes 继承的方法:”这是数兆字节的文本,因为它列出了该类所有方法的文档字符串。

最佳答案

讨论 here ,一个可行的解决方案是手动删除文档

## List the methods from the original class
method_list = [func for func in dir(mymodule.MySubclass) if \
callable(getattr(mymodule.MySubclass, func))]

## Remove doc for methods
for func in method_list:
## Change only original user defined methods
if ("_" not in el[0:2]):
original_method = getattr(mymodule.MySubclass, func)
setattr(original_method, "__doc__", "")
else:
pass

这可以很容易地封装在装饰器中,并在实例化子类或导入模块时调用。

关于python - 在子类文档字符串中抑制 "Methods inherited by base class",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50670470/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com