是否可以为特定功能覆盖Sphinx autodoc?

DNS*_*DNS 12 python python-sphinx autodoc

我正在使用Sphinx的autodoc插件自动记录一组模块.我有一个接受的函数,*args我想覆盖文档以显示funcname(arg1[, arg2[, ...]])Python stdlib文档使用的稍微好一点的样式.

是否可以覆盖特定功能的autodoc输出?

mzj*_*zjn 18

可以使用autofunction以下方式覆盖签名:

.. automodule:: yourmodule
   :members:
   :exclude-members: funcname

.. autofunction:: funcname(arg1[, arg2[, ...]])
Run Code Online (Sandbox Code Playgroud)

但是,具有重写签名的函数不会与其他函数一起使用进行排序automodule.autofunction对每个函数使用显式指令可以解决这个问题:

.. autofunction:: firstfunc

.. autofunction:: funcname(arg1[, arg2[, ...]])

.. autofunction:: thirdfunc
Run Code Online (Sandbox Code Playgroud)

加成

您还可以附加到docstring:

.. autofunction:: funcname(arg1[, arg2[, ...]])

   Extra documentation here.  
Run Code Online (Sandbox Code Playgroud)

要覆盖签名和docstring,请使用function而不是autofunction.

增加2

签名也可以通过将签名作为函数docstring的第一行来覆盖.有关详情,请参阅此答案.

  • +1 为“添加 2”。覆盖文档字符串中的签名比尝试排除成员容易得多,然后使用自定义签名等重新添加它。 (2认同)