如何单独显示私有成员?



目前,我将模块描述为:


.. autoclass:: package.module.class
:members:
:undoc-members:
:show-inheritance:
:private-members:
:member-order: bysource

显示一行中的所有成员。我想做一些事情,如:


.. autoclass:: package.module.class
:members:
:undoc-members:
:show-inheritance:
:member-order: bysource
Private methods
===============
.. autoclass:: package.module.class
:noindex:
:private-members:
:member-order: bysource

我不得不使用:noindex:,因为:

警告:重复的包对象描述。模块,类中的其他实例,对其中一个使用:noindex:

但似乎没有:members:,:private-members:就不会出现。这段代码将只显示类对象docstring:

.. automodule:: package.module.class
:noindex:
:private-members:
:member-order: bysource

这个东西会显示所有的类方法:

.. automodule:: package.module.class
:noindex:
:members:
:private-members:
:member-order: bysource

如何显示私有成员而不显示其他东西?

这并不能直接回答你的问题,但是我写了一个叫做autoclasstoc的Sphinx插件,正是为了在类文档中直观地分离公共方法和私有方法。这个插件的基本思想是创建一个链接到类的所有属性的列表,组织成部分,如公共/私有,属性/方法,继承自等。每个属性的详细文档保持按字母顺序排列,但有组织的列表使类的结构清晰。

下面是该插件使用的语法示例。它只是在您已有的内容上添加了一行:

.. autoclass:: package.module.class
:members:
:undoc-members:
:show-inheritance:
:private-members:
:member-order: bysource
.. autoclasstoc::

最新更新