2015-12-02 54 views
0

我正在嘗試編寫鏈接到我的包的其他部分的一些類和方法的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://stackoverflow.com/a/22714510/407651 – mzjn

+0

是的,我甚至可以執行'.b.func_two'而不是'my_package.b.func_two'來獲得工作鏈接。但我仍然在文檔中看到「b.func_two」,而我正在拍攝「func_two」。 – orome

回答

1

要創建對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://stackoverflow.com/q/34010116/656912)。 – orome

相關問題