我有一个子班和一个家长班。我希望子类继承父类的功能。问题是当我有多个继承时。所有父母文档都显示在孩子下方,但我只想要第一个父母文档(或特定的文档,无论顺序如何)。
代码示例:
clas Base:
def method1(param):
# docs
# logic
class additinalClass:
def method2(param):
# docs
# logic
class element(Base, additinalClass):
def method3(param):
# docs
# logic
当使用 :inherited-members: 运行 sphinx 时,我得到了 method1+2+3 的文档,而不是 1+3。
我尝试使用排除成员,但它用于函数而不是类,所以它不理想。我也尝试找到包含选项,但这不是一个好的解决方案,因为如果我有很多函数,我就无法编写所有内容。
我还尝试将“ndarray”添加到“:inherited-members:”中,如下所示:::inherited-members:ndarray,但它不起作用。
要选择性地从 Sphinx 中的特定父类继承文档,您可以将 autodoc 扩展与 automodule 指令和 :members: 选项一起使用,如下所示:
class Base:
#Base class.
def method1(param):
#Method 1 documentation.
pass
class AdditionalClass:
#Additional class.
def method2(param):
#Method 2 documentation.
pass
from base import Base
from additional import AdditionalClass
class Element(Base, AdditionalClass):
#Element class.
def method3(param):
#Method 3 documentation.
pass
在您的 sphinx 文档中,您必须添加以下内容:
.. automodule:: element
:members: method1, method3
在 :members: 选项中,您可以指定要从元素模块包含的方法。这样,您就可以选择特定的方法来记录,而忽略从父类继承的其他方法。