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

问题描述:

我正在尝试编写链接到我的包的其他部分的一些类和方法的Sphinx文档字符串,但无法弄清楚如何构建这些链接或让它们在我需要时显示。我如何在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() 
     # ... 

# b.py 

class B(object): 

    def func_two(): 
     # ... 

在我的包被组织

my_package/ 
    a.py 
    b.py 

,我想狮身人面像文档为A.func_one显示为

是否使用func_two来自B

并包含指向func_twoB的链接。

我已经尝试了方法和类的全名的各种组合,但似乎没有工作。我该如何做到这一点?

+1

这是否帮助? http://*.com/a/22714510/407651 – mzjn

+0

是的,我甚至可以执行'.b.func_two'而不是'my_package.b.func_two'来获得工作链接。但我仍然在文档中看到“b.func_two”,而我正在拍摄“func_two”。 – orome

要创建对Python对象的交叉引用,请使用Python域提供的角色(:class:,:meth:等)。见http://sphinx-doc.org/domains.html#cross-referencing-python-objects

例子:

:py:meth:`mymodule.MyClass.mymethod` 

要获得链接文本是只有目标的最后一部分,使用~(波浪号)前缀。请参阅http://sphinx-doc.org/domains.html#cross-referencing-syntax

例子:

:py:meth:`~mymodule.MyClass.mymethod` 
+0

并且:如果在'conf.py'中设置'default_role ='py:obj'',可以省略':py:meth:'部分。 – orome

+0

也许你还可以帮助[另一个狮身人面像问题](http://*.com/q/34010116/656912)。 – orome