问题
I'm using Sphinx's autodoc plugin to automatically document a set of modules. I have a function that accepts *args
, and I'd like to override the documentation to show the slightly nicer funcname(arg1[, arg2[, ...]])
style that the Python stdlib docs use.
Is it possible to override the autodoc output for a specific function?
回答1:
It is possible to override a signature by using autofunction
:
.. automodule:: yourmodule
:members:
:exclude-members: funcname
.. autofunction:: funcname(arg1[, arg2[, ...]])
However, the function with the overridden signature is not sorted with the other functions pulled in with automodule
. Using explicit autofunction
directives for every function works around that:
.. autofunction:: firstfunc
.. autofunction:: funcname(arg1[, arg2[, ...]])
.. autofunction:: thirdfunc
Addition
You can also append to the docstring:
.. autofunction:: funcname(arg1[, arg2[, ...]])
Extra documentation here.
To override both signature and docstring, use function
instead of autofunction
.
Addition 2
The signature can also be overridden by having a signature as the first line of the function docstring. See this answer for details.
来源:https://stackoverflow.com/questions/5365684/is-it-possible-to-override-sphinx-autodoc-for-specific-functions