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

2024-05-01

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

找到交叉引用的语法here http://sphinx-doc.org/markup/inline.html#ref-role

该部分之前必须有一个标签,以便可以从文档的其他区域引用该部分。

我拥有的是我的一个课程的 .rst (ReStructuredText) 文件。它用

.. autoclass:: classname
    :members:

为该类生成文档。

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

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

这是 [Python 文档中的参考示例]2 http://docs.python.org/2.7/library/textwrap.html#textwrap.TextWrapper.wrap做我需要的事情(我假设它使用了自动文档功能,尽管我不确定)


您不需要添加标签。为了引用 Python 类、方法或其他记录的对象,请使用由Python域 https://www.sphinx-doc.org/en/master/usage/restructuredtext/domains.html#cross-referencing-python-objects.

例如,以下定义了对mymethod方法:

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

或者更简单(因为 Python 域是默认域):

:meth:`mymodule.MyClass.mymethod`

的文档TextWrapper.wrap http://docs.python.org/2.7/library/textwrap.html#textwrap.TextWrapper.wrap您在问题中链接到的内容包括两个此类交叉引用(单击“显示源”以查看其余标记)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何交叉引用 Sphinx 中 autodoc 生成的函数? 的相关文章