2013-07-14 124 views
18

什麼是編寫Python文檔字符串的首選方式?Python doc字符串:三雙引號v.s.雙引號

""""

在這本書中Dive Into Pythonhttp://www.diveintopython.net/getting_to_know_python/documenting_functions.html,筆者提供了以下例子:

def buildConnectionString(params): 
    """Build a connection string from a dictionary of parameters. 

    Returns string.""" 

在另一章:http://www.diveintopython.net/object_oriented_framework/index.html#fileinfo.divein,作者提供了另外一個例子:

def stripnulls(data): 
    "strip whitespace and nulls" 
    return data.replace("\00", "").strip() 

兩種語法都適用。唯一的區別是"""允許我們寫多行文檔。

除此之外還有什麼區別嗎?

回答

25

PEP8 Style Guide

  • PEP 257介紹好文檔字符串的約定。請注意,大多數 重要的是,「」「在結束一個多文檔字符串應該本身是一個 線,如:

    """Return a foobang 
    
    Optional plotz says to frobnicate the bizbaz first. 
    """ 
    
  • 對於一個襯墊文檔字符串,它的好,以保持關閉‘上的’」 同一行。

PEP 257建議使用三引號,即使是一個在線文檔字符串:即使串在一行符合

  • 三重引號。這個 可以很容易地擴展它。

請注意,即使Python標準庫本身並不一致地遵循這些建議。例如,

+0

聽起來**深入Python的作者**一直使用整個書「不太好」的語法---最在示例中結尾的「」「不在單獨的行中:-) – Mingyu

+0

如果您發現它有用,請遵循該約定但我寧願不要因爲不遵守此特定慣例而拒絕任何人。:) – unutbu

+0

Thanks,@unutbu 。我喜歡「Dive Into Python」這本書,Mark Pilgrim很好地解釋了一些東西,正如你所指出的,即使是Python標準庫也沒有嚴格遵循這個約定,我想這是一個很好的例子。 '約定 – Mingyu

5

它們都是字符串,所以沒有區別。優選的風格是三雙引號(PEP 257):

爲了保持一致性,始終使用"""triple double quotes"""各地文檔字符串。如果在文檔字符串中使用任何反斜槓,則使用。對於Unicode文檔,請使用u"""Unicode triple-quoted strings"""

0

沒有,真的沒有。如果你正在寫一個文件,使用三重引號可能是理想的,因爲你不必使用「\ n」來排隊。只要確保你開始和結束的引號是相同的類型(雙引號或三引號)。這裏是一個可靠的資源,如果您有任何問題:

http://docs.python.org/release/1.5.1p1/tut/strings.html

+2

你有什麼理由:1)將文檔給Python 1.5.1(1998年發佈)? 2)阻止OP使用不同的引號? (我問,因爲你沒有解釋,而它會工作:http://ideone.com/tID3uI)。 – Tadeck

+0

@Tadeck - 我覺得很有意思,看看很老的Python文檔。在Guido以外的任何人看到Python之前,看看有多少Python的最佳創意已經存在,這總是非常有趣。 – ArtOfWarfare