我正在记录的软件包由一组
问题在于Sphinx坚持将类记录为
如何让Sphinx将类显示为
*.py
文件组成,大多数文件包含一个类,有几个文件是真正定义了函数的模块。我不需要暴露每个类在哪个模块中,因此我已经在__init__.py
文件中添加了适当的from
语句。from base import Base
这样用户就可以使用import pkg
命令,而不必指定包含类的模块:
import pkg
class MyBase(pkg.Base): # instead of pkg.base.Base ...
...
问题在于Sphinx坚持将类记录为
pkg.base.Base
。我已经尝试在conf.py
中设置add_module_names = False
。然而,这会导致Sphinx将类显示为简单的Base
,而不是pkg.Base
。此外,这还破坏了一些*.py
文件的文档,这些文件实际上是模块。如何让Sphinx将类显示为
pkg.Base
?
如何为每个*.py
文件选择性地设置add_module_names
指令?
Base
类,那么Sphinx怎么知道您想使用哪个名称?如果您不希望用户知道定义类的模块,则应将其设置为私有(如果我记得正确的话,它不会显示在生成的文件中)。 - Bakuriuadd_module_names = False
并将文档放置在正确的页面即可。用户将在引用模块pkg
的页面中看到有一个记录的类Base
,这很好。pkg.module.Base
仅 指定了定义类的模块,而不是您“使用它”的地方(这是一些未定义的东西)。如果您想要获得所需的输出的肮脏解决方案,则可以在__init__
中创建一个虚假的子类:class TheClass(pkg.module.TheClass): pass
,继承文档。 - Bakuriu