如何使用Sphinx的autodoc来记录类的_init__(self)方法?

默认情况下,Sphinx不会为_init__(self)生成文档。我尝试了以下方法:

。。自动模块::mymodule
:成员:

.autoclass::MyClass
:成员:

在conf.py中,设置以下内容只会将_init___;(self)docstring追加到类docstring中(Sphinx autodoc文档似乎同意这是预期的行为,但没有提到我试图解决的问题):

自动类内容='both'

以下是三个备选方案:

  1. 为确保始终记录\uuuu init\uuuu(),可以在conf.py中使用autodoc skip member。像这样:

    def skip(应用程序、内容、名称、对象、将跳过的内容、选项):
    如果名称=“\uuuu init\uuuuuu”:
    返回错误
    返回将跳过
    def设置(应用程序):
    app.connect(“autodoc跳过成员”,跳过)
    

    这明确定义了不被跳过的\uuuuu init\uuuu(默认情况下)。此配置只指定一次,并且不需要为.rst源中的每个类添加任何附加标记

  2. Sphinx 1.1中添加了特殊成员选项。它使“特殊”成员(名称如\uuuuu special\uuuu)由autodoc记录

    自Sphinx1.2以来,此选项采用的参数比以前更有用

  3. 使用自动方法

    。。自动类::MyClass
    :成员:
    .. automethod::uu init__
    

    必须为每个类添加此选项(不能与automodule一起使用,如本答案第一版注释中所述)

发表评论