python - 修改 automodule 指令下特定类的选项

标签 python python-sphinx restructuredtext autodoc

我有一个 Python 模块 my_module.py,如下所示:

import numpy

class A(numpy.ndarray):
    """ Extension for illustration. """
    pass

class B:
    """ My base class. """
    def x():
        """ Does the thing. """
        pass

class C(B):
    """ My extension class. """
    pass

我有一个如下所示的 reST 文件:

API Reference
=============

my_module
---------

.. automodule:: my_module
    :members:
    :special_members:

我希望能够向 BC 添加 :inherited-members: 选项,但不向 A 添加.

我尝试在 automodule 下添加单独的 autoclass 指令:

.. automodule:: my_module
   :members:
   :special_members:

   .. autoclass:: B
      :inherited-members:

   .. autoclass:: C
      :inherited-members:

这会产生意想不到的效果,即放置带有继承成员的 BC 的正确文档版本,然后是 A 的完整文档>、BC,所有这些都在同一文件中没有继承的成员。

如何在不复制生成的文档的情况下为某些成员指定不同的选项?

我在 Python 3.6.2 的 Anaconda 安装上使用 Sphinx 1.6.3。

最佳答案

尝试将 :members: 添加到类 BC 以及 :exclude-members: B, C到模块:

.. automodule:: my_module
   :members:
   :special_members:
   :exclude-members: B, C

   .. autoclass:: B
      :inherited-members:
      :members:

   .. autoclass:: C
      :inherited-members:
      :members:

来自automodule, autoclass, and autoexception options and advanced usage :

For classes and exceptions, members inherited from base classes will be left out when documenting all members, unless you give the inherited-members flag option, in addition to members:

.. autoclass:: Noodle
   :members:
   :inherited-members:

如果这不起作用,我可以改进我的答案。注释不利于提供示例代码,因此我必须使用答案。

关于python - 修改 automodule 指令下特定类的选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45701936/

相关文章:

python - 在Python中替换数据框中的值

documentation - 如何编写自动包含在 Doxygen 输出中的自述文件?

vim - 使用 matchit 匹配反引号 --- 可能吗?

python - 展开组合的列表列并保留其他数据

python - 如何修复尝试使用 Selenium 查找元素时引发的 TypeError?

python - 更改 Sphinx 中的内部链接标签

python - 如何在默认的 Sphinx 主题上使用自定义 CSS?

python-sphinx - 编号为 :math: equations in reStructuredText

python - 如何在 Cloud Function 中初始化 Firebase Admin SDK (Python)

python-sphinx - 合并来自多个项目的Sphinx文档