如何使 Sphinx 尊重使用 __init__.py 将类导入到包中

2024-03-25

我有一个包裹:

  • foo
    • foo.py
    • bar.py
    • __init__.py

foo.py 有一个 Foo 类。在 __init__.py 中,我导入了 Foo 类,以便用户可以执行以下操作:

from foo import Foo

Sphinx 正确地将 Foo 记录为 foo.foo.Foo,这是正确的,但让用户感到困惑。如何让 Sphinx 将其记录为 foo.Foo?

获取与正确模块相关的整体模块文档也很重要。

Sphinx 记录了一个叫做:

..module:: module.name

但是当我在第一个评论中使用它时foo.py文件,该文档仍然归因于foo.foo.


的价值__module__属性是定义类/函数/方法的模块的名称(请参阅https://docs.python.org/2.7/reference/datamodel.html https://docs.python.org/2.7/reference/datamodel.html)。该属性是可写的,因此可以在 __init__.py 中重新定义:

Foo.__module__ = "foo"

现在如果你使用.. automodule:: foo, 的限定名称Foo类将显示为foo.Foo在生成的模块文档中。


作为替代方案__module__-摆弄,你可以使用autoclass代替automodule.

.. autoclass:: foo.Foo将产生想要的输出。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使 Sphinx 尊重使用 __init__.py 将类导入到包中 的相关文章

随机推荐