我有一个 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:
我希望能够向 B
和 C
添加 :inherited-members:
选项,但不向 A 添加
.
我尝试在 automodule
下添加单独的 autoclass
指令:
.. automodule:: my_module
:members:
:special_members:
.. autoclass:: B
:inherited-members:
.. autoclass:: C
:inherited-members:
这会产生意想不到的效果,即放置带有继承成员的 B
和 C
的正确文档版本,然后是 A
的完整文档>、B
、C
,所有这些都在同一文件中没有继承的成员。
如何在不复制生成的文档的情况下为某些成员指定不同的选项?
我在 Python 3.6.2 的 Anaconda 安装上使用 Sphinx 1.6.3。
最佳答案
尝试将 :members:
添加到类 B
和 C
以及 :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 tomembers
:.. autoclass:: Noodle :members: :inherited-members:
如果这不起作用,我可以改进我的答案。注释不利于提供示例代码,因此我必须使用答案。
关于python - 修改 automodule 指令下特定类的选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45701936/