2013-03-15 11 views
188

Właśnie otworzyłem plik z Sublime Text (z Sublime Linter) i zauważyłem błąd formatowania PEP8, którego nigdy wcześniej nie widziałem. Oto tekst:Co to jest E128 PEP8: linia kontynuacyjna niewcięta do wcięcia wizualnego?

urlpatterns = patterns('', 
    url(r'^$', listing, name='investment-listing'), 
) 

To słabnącym drugi argument, linia, która rozpoczyna url(...)

miałem wyłączyć tę kontrolę w ST2 ale Chciałbym wiedzieć, co robię źle, zanim to zignoruje. Nigdy nie wiadomo, czy to ważne wydaje mi może nawet zmienić swoje sposoby :)

Odpowiedz

318

PEP-8 recommends skorzystać wcięcia linii do nawiasów otwierających jeśli umieścić coś na pierwszej linii, więc powinno być albo wcięcia na wsporniku otwarcia:

urlpatterns = patterns('', 
         url(r'^$', listing, name='investment-listing')) 

lub nie wprowadza żadnych argumentów na linii startu, a następnie wcięć na jednakowym poziomie:

urlpatterns = patterns(
    '', 
    url(r'^$', listing, name='investment-listing'), 
) 

urlpatterns = patterns(
    '', url(r'^$', listing, name='investment-listing')) 

proponuję odczytu przez PEP-8 - nie jest to długi dokument, i to dość łatwo rozumiem, w przeciwieństwie do niektórych z mo re techniczne PEP.

+0

Rozumiem! Tak, to ma sens. Przyjąłem ten kod ze "standardowego" sposobu działania Django. Sądzę, że gdybym pisał coś takiego, postawiłbym pierwszy argument na własnej linii. – Oli

+0

@Oli Tak. Potrafię zrozumieć instynkt polegający na umieszczeniu znaku '' 'w pierwszej linii, ale bardzo łatwo jest go przeoczyć. Dwa style w PEP-8 utrudniają przejrzenie argumentów podczas czytania. –

+5

Ktoś wie, dlaczego Django to robi; czy istnieje dobry powód? Wygląda na to, że równie łatwo byłoby podążać za PeP-8. – TheHerk