当前位置: 首页 > 面试题库 >

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

锺离浩慨
2023-03-14
问题内容

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

交叉引用的语法可在此处找到

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

我所拥有的是我其中一个班级的.rst(ReStructeredText)文件。它用

.. autoclass:: classname
    :members:

生成该类的文档。

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

有没有一种简单的方法可以执行此操作,还是我必须在类文件中显式地编写方法名称并在其前面加上标签?

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


问题答案:

您不需要添加标签。为了引用Python类,方法或其他记录的对象,请使用Python域提供的标记。

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

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

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

:meth:`mymodule.MyClass.mymethod`

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



 类似资料:
  • 问题内容: 我有一个类似这样的模块: …而且我有一个类似这样的文件: 构建文档时,我得到一个带有如下代码段的html文件: mymodule.foobar。 foob​​ar = ‘这里有些长而丑陋的正则表达式’ 额外的文档在这里 mymodule。 myfunc ( val =’这里有些长而丑陋的正则表达式’ ) 等等等等等等 基于这个帖子),我认为可以通过将模块更改为以下内容来对其进行更改:

  • 问题内容: 我正在尝试使用Sphinx来记录我的Python类。我这样做是使用autodoc: 虽然它可以正确地获取我的方法的文档字符串,但这些字符串是经过修饰的: 与存在 的原型不正确,例如。 我怎样才能解决这个问题?我的印象是使用可以解决这种问题。 问题答案: 扩展我的评论: 您是否尝试过使用decorator包并将@decorator放在checkStale上?使用带有修饰功能的epydoc

  • 问题内容: 我正在尝试使用Sphinx在Python中记录5,000多个项目。它有大约7个基本模块。据我所知,为了使用自动文档,我需要为项目中的每个文件编写如下代码: 这太繁琐了,因为我有很多文件。如果我只想指定要记录的“ mods”包,那会容易得多。然后,Sphinx可以递归地浏览包并为每个子模块创建一个页面。 有这样的功能吗?如果没有,我可以编写一个脚本来制作所有.rst文件,但这将花费很多时

  • 问题内容: 我在包含文件的文件上运行Sphinx,但似乎没有任何效果。 详细信息如下:我有一个Python项目,其中包含一个包含类的文件。我还有一个子目录,其中有一个文件(由生成): 我使用项目目录作为当前工作目录运行sphinx 。 为了确保找到Python文件,我在中包括了以下内容: 它运行没有错误,但是当我打开生成的HTML文件时,它仅显示“代理模块”,并且所有内容均为空白。为什么不显示班级

  • 我希望为结果提供内容过滤。我的(为简洁起见而编辑)实体如下所示: 节点: 场景: 来源: 下面是我希望实现的筛选器的一个示例。 给定一个SourceTypes集合,我希望选择所有场景,这样每个场景都会被其中一个类型的源引用。我使用QueryDSL和以下谓词实现了这一点: 一系列这些谓词被组合起来给出一个整体查询。即使只选择一个SourceType,结果查询看起来也是这样: 我相信上面发生的是交叉连

  • 问题内容: 是否有 markdown 语法等效于: 问题答案: Take me to pookie 应该是正确的markdown语法,以跳转到名为pookie的锚点。 要插入该名称的锚点,请使用HTML: Markdown似乎不介意将锚点放在哪里。标头中有用的地方。例如: 效果很好。(我在这里进行了演示,但是SO的渲染器去除了锚点。) 注意自我结束标记和对 本文的早期版本建议使用,对XHTML使用