sphinx命名特别成员

时间:2017-02-13 22:24:16

标签: python warnings python-sphinx autoclass

这是我第一次使用Sphinx,到目前为止我已经找到了很多,但有一个特别的警告,我得到的是我无法弄清楚它告诉我的是什么。

根据http://www.sphinx-doc.org/en/stable/ext/autodoc.html的文件, 如果给出了special-members标志选项,则将包含Python“特殊”成员(即名为特殊的成员):

.. autoclass:: my.Class
    :members:
    :private-members:
    :special-members:

会记录班级的“私人”和“特殊”成员。 版本1.1中的新功能。 在版本1.2中更改:该选项现在可以使用参数,即要记录的特殊成员。

我想在我的文档中列出一个类的__init__但没有其他特殊成员,所以我的.rst文件是这样的:

**myClass Class**
==================

.. automodule:: python_module.submodule.series.myClass
    :members:

    .. autoclass:: myClass
        :members:
        :special-members: __init__

我收到错误“.rst:7:警告:缺少属性:对象中的特殊成员: init python_module.submodule.series.myClass.myClass

我正在使用sphinx版本1.5.1所以不应该这样做,因为我已经传递了我要记录的特殊成员的名字?该错误使我看起来像是从我的.py文件中遗漏了一些东西,我正在从中提取文档字符串。是这样的吗?如果我想这样做,我找不到任何需要在方法中出现的特殊内容。

2 个答案:

答案 0 :(得分:0)

我确实发现重复两次的类docstring是因为..automodule部分。我把它拿出来它仍然包括整个班级定义,所以这让我很开心。

我仍然无法使用:special-members:选项来记录__init__定义,但这是一个可以忽略不计的问题,因为该类已足够充分地记录。所以我想我现在只是允许这个警告让我感到困扰......现在。

答案 1 :(得分:0)

请注意,如果您在谈论课程,则应使用:

.. autoclass:: MyClass
   :members:

   .. automethod:: __init__

如果您要谈论的模块包含您的类和其他内容,请使用:

.. automodule:: mymodule
   :members:
   :special-members: __init__

请注意,这将记录在模块上找到的所有 init 方法。

如果同时使用这两种方法,那么MyClass。 init 方法将被记录两次:

.. automodule:: mymodule
       :members:
       :special-members: __init__

.. autoclass:: MyClass
   :members:

   .. automethod:: __init__
相关问题