68

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

交叉引用的语法可以在这里找到

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

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

.. autoclass:: classname
    :members:

为类生成文档。

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

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

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

4

2 回答 2

103

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

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

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

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

:meth:`mymodule.MyClass.mymethod`

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

于 2014-03-28T13:40:35.653 回答
3

除了已经提供的出色答案之外:

要为引用的模块(方法、函数、属性等)添加别名,请使用以下语法:

:mod:`Alias Name <package.module>`

这将作为参考出现Alias Name在文档中,并链接到提供的模块。

于 2021-11-09T09:33:27.370 回答