我有一个三层的类结构:
class Super(object):
"""This class is documented."""
class Intermediate(Super):
pass
class Sub(Intermediate):
"""This is also documented."""
我的index.rst
文件如下所示:
.. automodule:: mymodule
:show-inheritance:
:inherited-members:
Sphinx为我生成了一个很好的API文档。它包含类Super
和Sub
,以及相应的注释。它不包括Intermediate
,因为它没有评论,我没有提供undoc-members
标志。这是因为我不希望{1}}显示在文档中。
我的问题是这样的:因为我提供Intermediate
标志,Sphinx显示每个类的基础; show-inheritance
为object
,Super
为Intermediate
。由于Sub
未记录,我不希望它出现在基类列表中。相反,我希望Sphinx在继承树Intermediate
中显示下一个记录的类。换句话说:我希望Sphinx显示Super
,而不是Super
作为Intermediate
的基类。
有人知道怎么做吗?
答案 0 :(得分:1)
对于这种特殊情况,您想“隐藏”类继承,可以使用autoclass
来记录每个可见的类,而不是记录整个模块。
例如:
.. currentmodule:: demo
.. autoclass:: Super
:members:
.. autoclass:: Sub
:members:
然后,您可以添加:show-inheritance:
标志以向您想要的类显示继承。
引用文档:
automodule,autoclass和autoexception指令还支持称为show-inheritance的标志选项。如果指定了基类,则将在类签名的正下方插入一个基类列表(当与automodule一起使用时,将为模块中记录的每个类插入基类)。