1

我想__init__()在我的 sphinx 生成的文档中包含文档字符串。

我正在按照这个 stackoverflow 问题的公认答案添加处理程序,autodoc-skip-member但仍然无法看到我的__init__()文档。块内的跟踪代码if name == "__init__":显示我正在点击该代码。

凭直觉,我'sphinx.ext.napoleon'从我的extensions定义中删除,离开

extensions = [
    'sphinx.ext.autodoc',
    # 'sphinx.ext.napoleon',
]

然后我可以看到__init__()文档。

我在拿破仑文档中看到的唯一似乎相关的是napoleon_include_special_with_doc,它说默认为True. 将其显式设置为Trueinconf.py似乎并没有改变任何东西。

ETA:如果我添加以下方法:

def __blah__(self):
    '''blah blah blah'''
    print self.__class__

__blah__()在我生成的文档中看到。

  • 如果我将名称更改__blah____repr____str__,我会在生成的文档中看到它们。
  • 如果我注释掉现有的__init__并更改 __blah____init__我看不到它。

所以它似乎特定于__init__().

这是一个已知问题吗?在使用拿破仑时是否有另一种方法来控制它?

4

2 回答 2

0

根据 Rob 在https://github.com/sphinx-doc/sphinx/issues/2374的后续操作,如果您使用的任何扩展程序还为“autodoc-skip-member”事件设置了处理程序,那么只有一个处理程序会使用。这似乎是手头的问题。谢谢罗伯!

于 2016-03-30T16:36:54.143 回答
0

Napoleon 会根据您的 autodoc 配置来决定您要如何处理该__init__方法。

检查您的自动文档设置conf.py。特别是,确保autoclass_content设置为initboth

于 2016-03-28T21:35:47.453 回答