Sphinx autodoc:继承文档字符串而不继承类

时间:2020-05-26 22:18:09

标签: python python-sphinx autodoc

我有两个类,它们通过鸭子类型共享一个API,但不共享任何继承:

class A:
    def method():
        """Does something."""
        pass

class B:
    def method():
        pass

我为A编写了文档字符串,但没有为B编写文档字符串。由于两个类共享相同的API语义,因此它们的文档字符串大部分相同。我不想在两个不同的地方重复相同的文档字符串。

如果BA继承,则autodoc具有继承父类文档字符串的工具,但是我不希望BA继承。

我可以使两个类都从abc.ABC抽象类继承而来,并在其中放置文档字符串,但这会增加很多代码,而不仅仅是文档。

有没有办法告诉autodoc从另一个类复制文档字符串?

1 个答案:

答案 0 :(得分:2)

我不确定您可以告诉autodoc做到这一点,但是您可以将其复制到代码中:

class A:
    def method():
        """Does something."""
        pass

class B:
    def method():
        pass
    method.__doc__ = A.method.__doc__