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

oro*_*ome 1 python documentation python-2.7 python-sphinx autodoc

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

我有一个Python课程

class MyClass(object):

    def funky(self, arg):
        """Some docs."""
        ...
Run Code Online (Sandbox Code Playgroud)

定义my/module.py其中按预期工作,我可以使用以下方式记录而不会出现问题

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

.. automodule:: my.module

.. autoclass:: MyClass
   :members:
   :undoc-members:
   :show-inheritance:
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试更好地控制文档的组织时,我无法让事情正常进行。具体来说,我希望将一些成员记录在明确的部分中(此处仅显示一个成员,但会有多个),其余成员自动记录为一组。

但是当我尝试这个时,例如

***************************
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
Run Code Online (Sandbox Code Playgroud)

我明白了

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

但没有变化

.. currentmodule:: my.module
.. class:: MyClass

.. automethod:: funky
Run Code Online (Sandbox Code Playgroud)

或者

.. currentmodule:: my.module

   .. automethod:: funky
Run Code Online (Sandbox Code Playgroud)

等带我去任何地方。

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

mzj*_*zjn 7

这有效:

.. currentmodule:: my.module

.. automethod:: MyClass.funky
Run Code Online (Sandbox Code Playgroud)

你可以跳过.. currentmodule::并这样做:

.. automethod:: my.module.MyClass.funky
Run Code Online (Sandbox Code Playgroud)

第三种选择:

.. currentmodule:: my.module

.. autoclass:: MyClass   

   .. automethod:: funky
Run Code Online (Sandbox Code Playgroud)