不幸的是,變量(和常量)沒有文檔字符串。畢竟,該變量只是一個整數的名稱,並且您不希望將文檔字符串附加到數字1
上,就像您對函數或類對象的方式一樣。
如果你看stdlib中的幾乎任何模塊,如pickle
,你會看到他們使用的唯一文檔是註釋。是的,這意味着help(pickle)
只能說明這一點:
DATA
APPEND = b'a'
APPENDS = b'e'
…
...完全忽視了意見。如果您希望自己的文檔顯示在內置幫助中,則必須將它們添加到模塊的文檔字符串中,這並不完全理想。
但獅身人面像可以做比內置的幫助更多的東西。您可以對其進行配置以提取常量上的註釋,或者使用autodata
半自動地進行評論。例如:
#: Indicates some unknown error.
API_ERROR = 1
多以前#:
線的任何賦值語句,或聲明的右單#:
評論,有效地開展工作作爲對象的文檔字符串由車博士拿起相同。其中包括處理內聯rST,併爲變量名自動生成rST頭;沒有什麼額外的工作要做。
作爲一個側面說明,你可能要考慮使用替代enum
像這樣單獨的常量。如果你沒有使用Python 3.4(你可能還沒有...),那麼3.2 +或flufl.enum
就有一個backport.enum
包(它不是完全相同,但它是相似的,因爲它是stdlib模塊的主要靈感)爲2.6+。
枚舉實例(不flufl.enum
,但STDLIB /反向移植版),甚至可以有文檔字符串:
class MyErrors(enum.Enum):
"""Indicates some unknown error."""
API_ERROR = 1
"""Indicates that the request was bad in some way."""
BAD_REQUEST = 2
"""Indicates that the request is missing required parameters."""
MISSING_PARAMS = 3
雖然他們遺憾的是不help(MyErrors.MISSING_PARAMS)
露面,他們是文檔字符串是獅身人面像車博士可以拿起。
你是什麼意思?「我如何記錄這些常量?」。添加註釋(或您的案例中的字符串)已經是一種文檔形式。你在問如何讓sphinx-autodoc識別你的內部文檔並將其顯示在sphinx的輸出中? – mgilson