2013-07-14 2 views
18

Was ist die bevorzugte Art, Python-Doc-String zu schreiben?Python-doc-Zeichenfolge: Triple-Double-Quote vs. Doppeltes Zitat

""" oder "

Im Buch Dive Into Python: http://www.diveintopython.net/getting_to_know_python/documenting_functions.html, der Autor das folgende Beispiel:

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

    Returns string.""" 

In einem anderen Kapitel: http://www.diveintopython.net/object_oriented_framework/index.html#fileinfo.divein stellt der Autor ein anderes Beispiel:

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

Beide Syntax funktioniert. Der einzige Unterschied zu mir ist, dass """ uns erlaubt, mehrzeiliges Dokument zu schreiben.

Gibt es einen Unterschied anders als das?

Antwort

25

Vom PEP8 Style Guide:

  • PEP 257 beschreibt gut docstring Konventionen. Beachten Sie, dass die meisten wichtiger ist, die „“ „dass endet ein mehrzeiliges docstring auf einer Linie für sich allein sein sollte, zum Beispiel:

    """Return a foobang 
    
    Optional plotz says to frobnicate the bizbaz first. 
    """ 
    
  • Für einzeiler Docstrings, es okay ist, die Schließung zu halten‚auf‘“ gleiche Zeile.

PEP 257 empfiehlt dreifache Anführungszeichen, auch für einzeilige Docstrings:

  • Triple-Zitate auch verwendet werden, wenn die Zeichenfolge auf einer Zeile passen. Diese macht es leicht, sie später zu erweitern.

Beachten Sie, dass nicht einmal die Python-Standardbibliothek selbst diese Empfehlungen konsequent befolgt. Zum Beispiel

+0

Klingt wie der Autor von ** Dive Into Python ** wurden mit „nicht-so-gut“ Syntax über das Buch --- Die meisten ending "" "in den Beispielen sind nicht in einer separaten Zeile :-) – Mingyu

+0

Befolgen Sie die Konvention, wenn Sie es nützlich finden. Aber ich würde es lieber nicht gegen jemanden halten, der dieser bestimmten Konvention nicht folgt. :) – unutbu

+0

Danke, @unutbu Ich mag das Buch "Dive Into Python" sehr, und Mark Pilgrim erklärt die Dinge ziemlich gut. Wie Sie bereits darauf hingewiesen haben, folgt auch die Python-Standardbibliothek dieser Konvention nicht streng. Ich denke, das ist einer von diesen "Nice-to-have" Konventionen – Mingyu

5

Sie sind beide Saiten, also gibt es keinen Unterschied. Die bevorzugte Art ist triple doppelte Anführungszeichen (PEP 257):

Aus Gründen der Einheitlichkeit immer """triple double quotes""" um Docstrings zu verwenden.

Verwenden Sie r"""raw triple double quotes""", wenn Sie Backslashes in Ihren Docstrings verwenden. Verwenden Sie für Unicode-Docstrings u"""Unicode triple-quoted strings""".

0

Nein, nicht wirklich. Wenn Sie in eine Datei schreiben, ist die Verwendung von dreifachen Anführungszeichen ideal, da Sie "\ n" nicht verwenden müssen, um eine Zeile nach unten zu setzen.Stellen Sie nur sicher, dass die Anführungszeichen, mit denen Sie beginnen und enden, vom selben Typ sind (doppelte oder dreifache Anführungszeichen). Hier ist eine zuverlässige Ressource, wenn Sie weitere Fragen haben:

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

+2

Aus irgendeinem Grund Sie: 1) Dokumentation zu Python 1.5.1 (veröffentlicht im Jahr 1998) geben? 2) OP davon abhalten, verschiedene Zitate zu verwenden? (Ich frage, weil Sie nicht erklärt haben, während es funktioniert: http://ideone.com/tID3uI). – Tadeck

+0

@Tadeck - Ich finde es sehr interessant, sehr alte Python-Dokumentation zu betrachten. Es ist immer sehr interessant zu sehen, wie viele Pythons beste Ideen bereits vorhanden waren, bevor Python von niemand anderem als Guido gesehen wurde. – ArtOfWarfare