【问题标题】:sphinx naming special-members狮身人面像命名特殊成员
【发布时间】:2017-02-13 22:24:15
【问题描述】:

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

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

.. 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: WARNING: missing attribute :special-members: init in object python_module.submodule.series.myClass.myClass

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

【问题讨论】:

  • python_module.submodule.series.myClass 不是一个模块,它是一个类。我想你想要.. automodule:: python_module.submodule.series
  • 我很抱歉。 myClass 实际上是一个模块。我在 myClass 模块中有一个 myClass.py 文件。我应该更好地命名这些东西。模块的树结构如下: python_module->submodule->series->myClass->myClass.py myClass.py 包含该类使用的类定义和方法。这就是 init 给我带来 Sphinx 问题的地方。
  • 另外,可能不相关的问题?但是我的课程文档字符串被重复两次。

标签: python warnings python-sphinx autoclass


【解决方案1】:

请注意,如果你在谈论一个类,你应该使用:

.. 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__

【讨论】:

    【解决方案2】:

    我确实发现类文档字符串被重复两次是因为 ..automodule 部分。我把它拿出来了,它仍然包含整个类的定义,这让我很高兴。

    我仍然无法使用 :special-members: 选项记录 __init__ 定义,但这是一个可以忽略不计的问题,因为该类已充分记录。所以我想我只是让这个警告让我难过……现在。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-28
    相关资源
    最近更新 更多