2013-03-15 19 views
9

Ho iniziato di recente a pensare che sarebbe stata una buona idea seguire PEP 8. Ho fatto in modo che il mio editor visualizzasse il marchio a 80 colonne e ora sto provando a racchiudere le linee per adattarlo. La mia domanda è questa. In PEP 8:Python PEP 8 lunghezza riga docstring

Limita tutte le righe fino a un massimo di 79 caratteri.

Ha senso.

[...] Per il flusso di lunghi blocchi di testo (docstring o commenti), si consiglia di limitare la lunghezza a 72 caratteri.

Perché 72? Perché 79 non va bene per docstring o commenti?

+0

Sono un po 'confuso. Il limite di 72 caratteri per i commenti incluso il rientro o no? –

risposta

9

Credo che sia una sbornia da documenti di testo:

Alla fine dell'età della macchina da scrivere, la maggior parte dei disegni sono stati orientati verso 72 CPL, derivato da un passo di 12 caratteri per pollice, moltiplicato per 6 pollici (vedi ad esempio IBM Selectric). Ciò garantirebbe almeno 1 pollici per ciascun margine, con il governo degli Stati Uniti, al momento aver standardizzato su 8 1/2 × 11" .

Source

Molti documenti di testo normale ancora conformarsi alle 72 CPL dalla tradizione.

Penso che questo è altrettanto docstrings sono spesso utilizzati in contesti al di fuori del codice, quindi ha senso per conformarsi allo stile documenti di testo più semplice utilizzare per cercare di rimanere come coerente il più possibile. Ad esempio, il testo delle pagine man viene in genere spostato su 72 caratteri. Limitando le docstring a 72 caratteri, l'output di help() lo rispecchia.

This question on Programmers potrebbe anche essere rilevante.

+1

Come commento - questo è tutto un tentativo - Non ho alcuna fonte che affermi che questo è il motivo, mi sembra probabile - se qualcuno ha qualcosa di più concreto, sarei interessato. –

+1

Comunque è una buona ipotesi. –

+0

Il testo è stato aggiunto da Guido in [questo changeset] (http://hg.python.org/peps/comparison/5f37d8cda9c1/pep-0008.txt) quindi dovresti chiedergli la sua fonte. Potrebbe essere dettagliato sulle mailing list. –

5

docstrings sono tipicamente rientrate con la loro funzione, e iniziano e terminano con apici tripli:

def foo(bar, baz): 
    """Frobnicate the foobars into baz 

    Parameters are ham and spammed. 

    """ 

Ecco 79 - 4 - 3 = 72 caratteri a sinistra.

+8

Sono abbastanza sicuro che il limite di 72 caratteri sia inteso per includerli. –

+0

Hrm, forse. Non sono sicuro di me stesso, ma potresti avere un punto anche con la tua risposta. –

+0

Questo vale solo per la prima riga della docstring, giusto? Dopo questo, sei limitato a 79 - 4 = 75 caratteri. Come si può rendere facile rispettare la limitazione 72 dopo la prima linea? –

1

Il motivo per cui le linee devono essere 79 caratteri è che possano essere inserite in un terminale di 80 caratteri (a quanto pare esistono ancora). La ragione per cui 72 caratteri sono usati sulla docstring è che questo significa che hai lo stesso padding su entrambi i lati (le docstring sono rientrate, dopo tutto) e si adattano ancora alla larghezza di 80 caratteri.

+0

Ma non inserire 80 caratteri in un terminale di 80 caratteri ?! –

Problemi correlati