2011-03-19 21 views
10

我正在使用Sphinx的autodoc插件來自動記錄一組模塊。我有一個接受*args的函數,我想覆蓋文檔以顯示Python stdlib文檔使用的略微好看的funcname(arg1[, arg2[, ...]])樣式。是否有可能重寫特定功能的獅身人面像autodoc?

是否有可能覆蓋特定功能的autodoc輸出?

回答

16

有可能通過使用autofunction覆蓋簽名:

.. automodule:: yourmodule 
    :members: 
    :exclude-members: funcname 

.. autofunction:: funcname(arg1[, arg2[, ...]]) 

然而,重寫的簽名功能不能與其他功能分類拉與automodule。使用顯式autofunction指令爲每個函數週圍的工作:

.. autofunction:: firstfunc 

.. autofunction:: funcname(arg1[, arg2[, ...]]) 

.. autofunction:: thirdfunc 

加成

您也可以附加到文檔字符串:

.. autofunction:: funcname(arg1[, arg2[, ...]]) 

    Extra documentation here. 

同時重寫簽名和文檔字符串,使用function代替autofunction

加成2

簽名也可以通過具有一個簽名作爲函數文檔字符串的第一行被覆蓋。有關詳細信息,請參閱this answer

+0

+1表示「加法2」。覆蓋文檔字符串中的簽名比嘗試排除該成員更容易,然後使用自定義簽名重新添加該簽名等。 – brianmearns 2014-04-10 12:43:29