如何在Sphinx中交叉引用autodoc生成的函数?

时间:2014-03-27 22:29:48

标签: python methods hyperlink python-sphinx restructuredtext

我正在使用 Sphinx autodoc功能根据我的Python库的文档字符串生成文档。

找到交叉引用的语法here

标签必须位于该部分之前,以便允许从文档的其他区域引用该部分。

我所拥有的是我的一个类的.rst(ReStructeredText)文件。它使用

.. autoclass:: classname
    :members:

为班级生成文档。

我的问题是,如何从文档中的另一个.rst文档引用该类的自动生成方法?如果我尝试在方法的文档字符串中放置一个标签,Sphinx会抱怨。如果我尝试在方法标题之前放置一个标签,Sphinx就无法识别它。

有没有一种简单的方法可以做到这一点,或者我是否必须在我的类文件中明确地写入方法名称并在其前面添加标签?

这是一个示例[Python文档2中的一个参考做我需要的(我假设它使用了autodoc功能,虽然我不确定)

1 个答案:

答案 0 :(得分:41)

您无需添加标签。要引用Python类,方法或其他文档化对象,请使用Python domain提供的标记。

例如,以下定义了对mymethod方法的交叉引用:

   
:py:meth:`mymodule.MyClass.mymethod`

甚至更简单(因为Python域是默认的):

:meth:`mymodule.MyClass.mymethod`

您在问题中链接到的TextWrapper.wrap文档包含两种此类交叉引用(单击“显示源”以查看reST标记)。