如何使用Sphinx记录特定部分的成员?

时间:2015-11-30 23:44:44

标签: python python-2.7 documentation python-sphinx autodoc

我正在努力弄清楚如何将我的Python类的特定成员的文档放在我的Sphinx文档的特定部分中,理想情况下是在另一部分自动记录其余部分。

我有一个Python类

class MyClass(object):

    def funky(self, arg):
        """Some docs."""
        ...
my/module.py中定义的

按预期工作,我可以使用

进行无问题的记录
***************************
MyModule - :mod:`my.module`
***************************

.. automodule:: my.module

.. autoclass:: MyClass
   :members:
   :undoc-members:
   :show-inheritance:

但是当我试图更好地控制我的文档组织时,我无法让事情发生。具体来说,我希望在明确的部分中记录一些成员(这里只显示一个,但会有几个),其余成员自动记录为一组。

但是当我尝试使用时,例如

***************************
MyModule - :mod:`my.module`
***************************

To document
===========

Things that are not yet documented.

.. automodule:: my.module

.. autoclass:: MyClass
   :members:
   :undoc-members:
   :show-inheritance:
   :exclude-members: funky

Funky things
------------

Some funky things.

.. automethod:: funky

我得到了

  

警告:不知道要导入哪个模块以进行自动文档记录(尝试在文档中放置“module”或“currentmodule”指令,或者给出明确的模块名称)

但没有

的变体
.. currentmodule:: my.module
.. class:: MyClass

.. automethod:: funky

.. currentmodule:: my.module

   .. automethod:: funky

等。把我带到任何地方。

如何在Sphinx文档中的特定位置自动记录我班级的某些成员?

1 个答案:

答案 0 :(得分:2)

这有效:

.. currentmodule:: my.module

.. automethod:: MyClass.funky

您可以跳过.. currentmodule::并按照以下方式进行操作:

.. automethod:: my.module.MyClass.funky

第三种选择:

.. currentmodule:: my.module

.. autoclass:: MyClass   

   .. automethod:: funky