【问题标题】:Sphinx autodoc: inherit docstrings without inheriting classSphinx autodoc:继承文档字符串而不继承类
【发布时间】:2020-07-10 19:02:10
【问题描述】:

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

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

class B:
    def method():
        pass

我为A 编写了文档字符串,但不是B。由于这两个类共享相同的 API 语义,因此它们的文档字符串基本相同。我不希望在两个不同的地方重复相同的文档字符串。

如果B继承自A,那么autodoc有工具可以继承父类文档字符串,但我不希望B继承自A

我可以让两个类都继承自 abc.ABC 抽象类并将文档字符串放在那里,但这将是大量添加的代码,除了文档之外没有其他目的。

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

【问题讨论】:

    标签: python python-sphinx autodoc


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-02
      • 2018-08-13
      • 2014-02-03
      • 2012-12-05
      • 2012-01-13
      相关资源
      最近更新 更多