2012-05-24 10 views

risposta

53

Non rompere l'url:

# A Foolish Consistency is the Hobgoblin of Little Minds [1] 
# [1]: http://www.python.org/dev/peps/pep-0008/#a-foolish-consistency-is-the-hobgoblin-of-little-minds 
+0

non riesco a capire perché questo è upvoted così tante volte. Non funziona per me. –

+0

@DmitrySorin: se "non interrompere l'url" non è chiaro; segui il link nella risposta. O se non è possibile aprire l'url; leggi la citazione diretta dalla risposta [@Christian Witts] (http://stackoverflow.com/a/10739989/4279). – jfs

+2

Sono d'accordo; tuttavia, PyCharm non rende facile ignorare (senza leggere il codice con i brutti riferimenti "# noinspection LongLine" (e simili) dappertutto.Penso che il problema più grande è che il formato RST ha la limitazione di non essere in grado di un'interruzione di riga (non visualizzata) nell'URL –

56

Da PEP8

Ma ancora più importante: sapere quando essere incoerenti - a volte la guida allo stile semplicemente non si applica. In caso di dubbio, usa il tuo miglior giudizio. Guarda altri esempi e decidi cosa sembra meglio. E non esitate a chiedere!

Due buone ragioni per rompere una regola particolare:

  • Quando si applica la regola renderebbe il codice meno leggibile, anche per chi è abituato a leggere il codice che segue le regole.

Personalmente, vorrei utilizzare questo consiglio, e piuttosto lasciare l'URL completo descrittiva nel tuo commento per la gente.

21

direi lasciare ...

PEP20:

Casi particolari non sono abbastanza speciale di rompere le regole.

Anche se la praticità batte la purezza.

È più pratico essere in grado di copiare/incollare rapidamente un url e quindi rimuovere interruzioni di riga quando si incolla nel browser.

-2

mia opzione sarebbe:

URL = ('http://stackoverflow.com/questions/10739843/' 
     'how-should-i-format-a-long-url-in-a-python-' 
     'comment-and-still-be-pep8-compliant') 
+3

Troppo doloroso per copiare pasta in modo utilizzabile in questo modo. –

+0

Questo è il codice che verrà eseguito, non un commento. –

20

È possibile utilizzare # noqa alla fine della riga per impedire a PEP8/Flake8 di eseguire tale controllo. Questo è consentito da PEP8 tramite:

I casi speciali non sono abbastanza speciali da infrangere le regole.

+2

Elegante. Io uso pyflakes in Vim e non effettuerò alcuna modifica finché non restituirà zero avvisi dal set di regole concordato (il requisito della maccabia è più lento nel nostro caso, ma non il limite di 80 linee). Il modo più breve per dire ai colleghi: non ho diviso la multiline perché non ha senso farlo. –

+2

Grazie a @Sardathrion, dovrebbe avere più voti poiché effettivamente contribuisce a una soluzione pratica. – ezdazuzena

5

Se usate flake8:

""" 
long-url: http://stackoverflow.com/questions/10739843/how-should-i-format-a-long-url-in-a-python-comment-and-still-be-pep8-compliant 
""" # noqa 
Problemi correlati