仅在Sphinx文档中显示文档字符串?
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
到最新版本,这样会是更好的选择。