我可以覆盖 Sphinx autodoc 中特定 class 属性 的文档字符串吗?

Can I override the docstring for a specific class property in Sphinx autodoc?

使用 Sphinx 2.2.0 和 python 3.6.8

我有两个 class,ABA 的 属性 生成一个实例 B。我希望我的 sphinx html 输出到引用对象 B,但我希望原始文档字符串没有任何 sphinx/rest 格式。我正在使用 autodoc,A 中的大多数方法和属性不需要此修改,但如果可能,我想在几个地方进行修改。

class A(object):
    """
    This is class A.
    """
    @property
    def getB(self):
        """
        Get an instance of B.
        """
        return B()

    # A also includes many other methods and properties which 
    # I want to document using autodoc

class B(object):
    pass    

我可以在 getB 文档字符串中写入 Get an instance of :class:`<B>`.,但 A.getB.__doc__help(A.getB) 包含该确切文本。我希望 A.getB.__doc__ 保留 Get an instance of B 但在 autodoc 生成的 html 输出中有参考。

class A  
Bases: object  

    getB  
        Get an instance of B̲.

假设A在a.py,我试过了

.. automodule:: a
   :member: A
   :exclude-member: getB

   .. method:: getB
      :property:

      get an instance of :class:`<B>`.

然而,这不会将 B 置于 A class 文档中或正确引用 class B.

property a.getB
Get an instance of B.

class A
Bases: object

我也试过.. method:: a.getB.. method:: a.A.getB都没有成功。

没有尝试 get the autodoc output 并直接修改它,有什么办法可以做到这一点吗?

为了将 .. method:: getB 的输出放在 class A 的文档中,您需要使用 autoclass 而不是 automodule

.. autoclass:: a.A
   :members:
   :exclude-members: getB

   .. method:: getB
      :property:

      Get an instance of :class:`B`.