在Sphinx文档中仅显示* docstring?

问题描述 投票:11回答:1

Sphinx具有称为automethod的功能,该功能可从方法的文档字符串中提取文档并将其嵌入到文档中。但它不仅嵌入了文档字符串,而且还嵌入了方法签名(名称和参数)。如何嵌入only文档字符串(不包括方法签名)?

ref:http://www.sphinx-doc.org/en/master/usage/extensions/autodoc.html

python python-sphinx autodoc
1个回答
17
投票

我认为您正在寻找的是:

from sphinx.ext import autodoc

class DocsonlyMethodDocumenter(autodoc.MethodDocumenter):
  def format_args(self):
    return None

autodoc.add_documenter(DocsonlyMethodDocumenter)

每个the current sources,这应该允许覆盖负责记录方法的类(较旧的add_documenter版本禁止此类覆盖,但现在明确允许使用这些覆盖)。 format_args中记录的方式当然是让autodoc返回None:“不要打扰签名”。

我认为这是执行此任务的干净,结构化的方法,因此,它比选择猴子补丁更可取。如果您需要使用某些旧版本的sphinx,尽管确实可行,但我建议您将autodoc.MethodDocumenter.format_args=lambda _:None升级到当前版本,这是一个更好的方法,尽管确实可行,但是您可能确实需要猴子补丁(sphinx-eek!-)在您的特定部署中。

© www.soinside.com 2019 - 2024. All rights reserved.