如何用 Sphinx 继承成员记录特定的父母?

问题描述 投票:0回答:1

我有一个子班和一个家长班。我希望子类继承父类的功能。问题是当我有多个继承时。所有父母文档都显示在孩子下方,但我只想要第一个父母文档(或特定的文档,无论顺序如何)。

代码示例:

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,但它不起作用。

python inheritance documentation sphinx
1个回答
0
投票

要选择性地从 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: 选项中,您可以指定要从元素模块包含的方法。这样,您就可以选择特定的方法来记录,而忽略从父类继承的其他方法。

© www.soinside.com 2019 - 2024. All rights reserved.