2015-07-31 18 views
8

ich Code-Review zu tun, und zu sehen Methode Erklärungen wie folgt aus:PEP8 Raum nach einem Komma

def __init__(self,data): 

Ich habe immer gedacht, dass es so formatiert werden soll:

def __init__(self, data): 

Aber dann habe ich überprüft PEP 0008 und sehe keine genaue Aussage darüber. Es gibt eine Anleitung für Leerräume um Operatoren und in Klammern, aber keine Kommata-getrennte Liste.

Wenn es in PEP8 nicht beschrieben wird, gibt es wahrscheinlich eine ungeschriebene Konvention darüber? Warum war ich überzeugt, dass dies in PEP8 war? Shoud PEP8 aktualisiert werden?

+1

Ich poste dies nicht als Antwort, da ich die Quelle nicht finden kann, um zu verifizieren, aber ich erinnere mich zu lesen, dass der Grund dafür ist, dass Python (wenn es kann) englische Grammatik und Regeln nachahmt. dh. Eine Liste der Dinge in Englisch ist Komma getrennt im gleichen Format ist in Python. Die Absicht ist, Lesbarkeit und Vertrautheit mit der Syntax zu unterstützen. – SuperBiasedMan

Antwort

5

Ich kann den entsprechenden Satz in PEP8 auch nicht finden, aber ich denke der Grund, warum die meisten Leute glauben, dass diese Regel in PEP8 ist, ist pip pep8.

Nach ihren document:

E231 fehlenden Leerzeichen nach ‚‘

Da den meisten Menschen dies als Stil-Checker verwenden, ist es leicht, sich zu überzeugen, dass die Regel wirklich in PEP8.

+0

Technisch korrekt, dass es keine individuelle Regel gibt, aber es ist ein Style, der im Style Guide selbst eingehalten wird. Man könnte argumentieren, dass die Empfehlung gegen Leerzeichen zwischen einem abschließenden Komma und einer schließenden Klammer die [Ausnahme, die die Regel bestätigt] (https://en.wikipedia.org/wiki/Exception_that_proves_the_rule) ist. –