我正在爲我的Python模塊(使用Sphinx和reST)編寫文檔,我發現當交叉引用其他Python對象(模塊,類,函數等)時,完整對象名字變得非常長。通常它是超過80個字符,我想不惜一切代價避免。引用長名稱的Python Sphinx
下面是一個例子:
def exampleFunction():
'''Here is an example docstring referencing another
:class:`module1.module2.module3.module4.module5.ReallyLongExampleClassName`
'''
的問題是,開創了ReallyLongExampleClassName類的文檔時,我產生它的全路徑名module1.module2.module3.module4.module5.ReallyLongExampleClassaName 。
我想知道是否有任何方法可以解決這個問題?我嘗試了以下方法,但沒有成功:
1)在模塊名稱的中間添加換行符。例如:
:class:`module1.module2.module3.module4.
module5.ReallyLongExampleClassName`
2)以不同的(但仍然是Python可導入的)方式引用類名。例如:
:class:`module1.module2.ReallyLongClassName`
我相信,因爲對於ReallyLongClassName的文檔被綁定到該獅身人面像不能完全命名版本的縮短版相關的完整路徑名。
任何幫助將不勝感激。
編輯04/05/2012:
按照j13r的答案/建議(見下文),我試過如下:
:class:`module1.module2.module3.module4.module5\
ReallyLongExampleClassName`
而這種成功合作。唯一需要注意的是,第二行必須沒有空格(在文檔字符串中使用它時非常令人沮喪)。因此,使我的原始示例工作,它看起來像:
def exampleFunction():
'''Here is an example docstring referencing another
:class:`module1.module2.module3.module4.module5.\
ReallyLongExampleClassName`
'''
好,醜。如果要在「ReallyLongExampleClassName」之前放置空格以將其縮進到與它上面的行相同的級別,則輸出將包含空格,因此Sphinx將嘗試引用諸如「module1.module2.module3.module4.module5。ReallyLongExampleClassName」之類的內容。 「
我也應該注意到,我想這兩個其他的變化,沒有工作:
# Note: Trying to put a space before the '\'
:class:`module1.module2.module3.module4.module5. \
ReallyLongExampleClassName`
# Note: Trying to leave out the '\'
:class:`module1.module2.module3.module4.module5.
ReallyLongExampleClassName`
我一直在尋找不涉及破壞文檔字符串的格式的解決方案,但我想它會這樣做......我想我其實更喜歡一個超過80個字符的行。
感謝j13r的回答!
這正是我正在尋找的。謝謝! – furtypajohn 2012-04-09 13:37:33