首页 > 解决方案 > show-inheritance 指代重定位的类会断开链接

问题描述

我想记录我的类继承自一个基类,它们都在一个更大包的子模块内。这个包将类导入到最顶层以获得更好的用户体验。出于这个原因,我也在那个级别上制作了我的文档。这是我的情况的要点。

# Directory structure
package
  __init__.py
  sub.py

# sub.py
class Foo:
    pass

class Bar(Foo):
    pass

# __init__.py
from .sub import Foo, Bar

# Some documentation file
.. currentmodule:: package
.. autoclass:: Foo
.. autoclass:: Bar
   :show-inheritance:

对这些类的其他引用工作正常,与package.Foo引用而不是package.sub.Foo. 但是show-inheritance选项autoclass显示原始路径以及断开的链接。将类移动到__init__.py恢复链接。

我怎样才能产生一个工作链接?作为奖励,我希望在班级名称中使用较短的名称。

文档


是一个相关的问题,我尝试了他的解决方案。修改__module__这些类的属性有效。

# __init__.py
Foo.__module__ = 'package'
Bar.__module__ = 'package'

但是,我怀疑最佳解决方案是为我定义的每个类手动执行此操作,其中大多数都有某种继承。

标签: pythonpython-sphinxautodoc

解决方案


推荐阅读