2013-07-14 23 views
18

Jaki jest preferowany sposób pisania ciągu do dokumentu w języku Python?Łańcuch dokumentu w języku Python: potrójny podwójny cytat v. Podwójny cytat

""" lub "

W książce Dive Into Python: http://www.diveintopython.net/getting_to_know_python/documenting_functions.html, autor przewiduje następujący przykład:

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

    Returns string.""" 

W innym rozdziale: http://www.diveintopython.net/object_oriented_framework/index.html#fileinfo.divein, autor zapewnia Inny przykład:

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

Obie składnia działają. Jedyna różnica polega na tym, że """ umożliwia nam pisanie wielu wierszy dokumentu.

Czy jest jakakolwiek inna różnica?

Odpowiedz

25

Z PEP8 Style Guide:

  • PEP 257 opisuje dobre konwencje docstring. Zauważ, że większość ważniejsze, „” „który kończy docstring multiline powinny być na linii przez siebie, np:

    """Return a foobang 
    
    Optional plotz says to frobnicate the bizbaz first. 
    """ 
    
  • dla jednego docstrings liniowej, to jest w porządku, aby utrzymać zamknięcie«»” na w tej samej linii.

PEP 257 zaleca stosowanie potrójnych cudzysłowów, nawet dla docstrings jeden online:

  • Potrójne cudzysłowy są wykorzystywane chociaż łańcuch pasuje na jednej linii. To ułatwia późniejsze rozszerzenie.

Należy pamiętać, że nawet standardowa biblioteka Python sama nie stosuje się do tych zaleceń. Na przykład,

+0

brzmi jak autor ** Zanurkuj w Pythonie ** zostały przy użyciu „nie tak dobre” składni całej książce --- Większość kończenie "" "w przykładach nie jest w osobnym wierszu :-) – Mingyu

+0

Postępuj zgodnie z konwencją, jeśli uznasz, że jest przydatna, ale wolałbym nie trzymać go przeciwko komukolwiek, kto nie przestrzega tej konwencji. :) – unutbu

+0

Dzięki, @unutbu Bardzo lubię książkę 'Dive Into Python', a Mark Pilgrim bardzo ładnie to tłumaczy.Jak zauważyłeś, nawet standardowa biblioteka Pythona nie ściśle przestrzega tej konwencji.Myślę, że jest to jedna z tych 'miło-mieć' 'konwencje – Mingyu

5

Oboje są strunami, więc nie ma różnicy. Korzystny styl jest potrójne cudzysłowy (PEP 257):

Dla spójności, zawsze używaj """triple double quotes""" wokół docstrings.

Użyj r"""raw triple double quotes""", jeśli używasz odwrotnych ukośników w swoich docstrings. W przypadku kodu Unicode użyj polecenia u"""Unicode triple-quoted strings""".

0

Nie, raczej nie. Jeśli piszesz do pliku, używanie potrójnych cytatów może być idealne, ponieważ nie musisz używać "\ n", aby przejść do następnego wiersza.Upewnij się, że cytaty, które zaczynasz i kończysz, są tego samego typu (podwójne lub potrójne cytaty). Tutaj jest wiarygodnym źródłem, jeśli masz jakieś pytania:

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

+2

Każdy powód: 1) dostarczyć dokumentację do Pythona 1.5.1 (wydana w 1998 r.)? 2) zniechęcić OP do korzystania z różnych ofert? (Pytam, ponieważ nie wyjaśniłeś, dopóki to zadziała: http://ideone.com/tID3uI). – Tadeck

+0

@Tadeck - Dla mnie bardzo interesujące jest zapoznanie się z bardzo starą dokumentacją Pythona. Zawsze jest bardzo interesujące zobaczyć, ile najlepszych pomysłów Pythona było już obecnych, zanim Python był widziany przez kogoś innego niż Guido. – ArtOfWarfare