如何继承Sphinx中抽象方法的文档字符串文档

时间:2018-09-08 00:45:23

标签: python documentation python-sphinx docstring

Sphinx autodoc是否有可能显示来自两者的文档字符串,类方法(从抽象类扩展)和抽象类方法本身。例如,在以下代码中:

class ExampleAbstractClass(ABC):

    def __init__(self):
        pass

    @abstractmethod
    def example_method(self):
        ''' 
        documentation for example_method in ExampleAbstractClass
        '''
        pass


class TestClass(ExampleAbstractClass):

    def __init__(self):
        pass

    def example_method(self):
        ''' 
        documentation for example_method in TestClass
        '''
        return super().example_method()

要使生成的文档同时包含“ ExampleAbstractClass中example_method的文档”和“ TestClass中example_method的文档”。

看来,如果我在TestClass的example_method中不包含docstring,则默认情况下会使用super方法的docstring,但是一旦在TestClass的example_method中定义了任何doc字符串,它们就会被替换为属于ExampleAbstractClass的example_method中的原始文档字符串。

我尝试使用以下方法手动添加到方法 doc 属性中:

self.example_method.__doc__ = super().example_method.__doc__ += '''test'''

但是,这似乎没有效果。是否可以通过任何方法将TestClass中example_method的生成文档“继承”为父文档,并在文档中附加新的文档字符串?

0 个答案:

没有答案