如何使用 Sphinx 引用我的项目中其他文件中的类和方法?

oro*_*ome 2 python cross-reference python-2.7 python-sphinx autodoc

我正在尝试编写链接到包其他部分中的某些类和方法的 Sphinx 文档字符串,但无法弄清楚如何构建这些链接或让它们根据需要显示。

我有

# a.py

from .b import *

class A(object):

    def func_one():
        """Does stuff using `func_two` from `B`."""
        some_b = B ...
        some_b.func_two()
        # ...
Run Code Online (Sandbox Code Playgroud)

# b.py

class B(object):

    def func_two():
        # ...
Run Code Online (Sandbox Code Playgroud)

我的包裹存放在哪里

my_package/
    a.py
    b.py
Run Code Online (Sandbox Code Playgroud)

我希望 Sphinx 文档A.func_one显示为

使用func_two来自 的东西B

并 包含指向func_two和 的链接B

我尝试过方法和类的全名的各种组合,但似乎不起作用。我该如何实现这个目标?

mzj*_*zjn 11

要创建对 Python 对象的交叉引用,请使用Python 域提供的角色(:class:、等)。:meth:请参阅https://www.sphinx-doc.org/en/master/usage/restructedtext/domains.html#cross-referencing-python-objects

例子:

:py:meth:`mymodule.MyClass.mymethod`
Run Code Online (Sandbox Code Playgroud)

要使链接文本仅成为目标的最后一部分,请使用~(波形符)前缀。请参阅https://www.sphinx-doc.org/en/master/usage/restructedtext/domains.html#cross-referencing-syntax

例子:

:py:meth:`~mymodule.MyClass.mymethod`
Run Code Online (Sandbox Code Playgroud)