仅在Sphinx文档中显示文档字符串?

10 投票
1 回答
3668 浏览
提问于 2025-04-15 14:02

Sphinx有一个叫做automethod的功能,它可以从方法的文档字符串中提取说明,并把这些说明放到文档里。不过,它不仅仅是放入文档字符串,还会把方法的签名(方法名和参数)也一起放进去。那么,如何只放入文档字符串,而不包括方法签名呢?

参考链接: http://www.sphinx-doc.org/en/master/usage/extensions/autodoc.html

1 个回答

16

我觉得你想要的东西是:

from sphinx.ext import autodoc

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

autodoc.add_documenter(DocsonlyMethodDocumenter)

根据当前的源代码,这应该可以让你更改负责记录方法的类(旧版本的add_documenter不允许这样做,但现在是明确允许的)。让format_args返回None,当然是autodoc中说明的“别管这个签名”的方法。

我认为这是一个干净、结构良好的方法来完成这个任务,因此比起其他的临时解决方案更好。不过,如果你需要使用一些旧版本的sphinx,你可能确实需要用临时的方法来解决(autodoc.MethodDocumenter.format_args=lambda _:None -- 哎呀!)不过我建议如果可能的话,还是升级sphinx到最新版本,这样会是更好的选择。

撰写回答