2016-04-22 13 views
6

Der E226 Fehlercode ist über "fehlende Leerzeichen um arithmetischen Operator".PEP8 E226 Empfehlung

Ich benutze Anaconda ‚s-Paket in Sublime, die als PEP8 E226 Verletzung beispielsweise diese Zeile markieren werden:

hypot2 = x*x + y*y 

Aber in Guido's PEP8 style guide diese Linie tatsächlich gezeigt als ein Beispiel für recommended use von Räumen innerhalb Betreiber.

Frage: Welches ist die richtige Richtlinie? Immer Leerzeichen um Operatoren oder nur in einigen Fällen (wie Guidos Empfehlung zeigt)?

Auch: Wer entscheidet, was in PEP8 geht? Ich hätte gedacht, Guido's Empfehlung würde ziemlich genau bestimmen, wie das funktioniert.

+1

Nicht sicher, welche Antwort Sie hier erhoffen ... PEP 8 ist PEP 8. Sublime PEP 8 Style Checker ist ein anderes Thema. Vielleicht hat der Implementierer dieses Pakets diese spezielle Regel nicht genau so implementiert, wie in der aktuellen PEP 8-Empfehlung beschrieben. – deceze

+0

Entschuldigung, ich habe meine eigentliche Frage hinzugefügt, um klarer zu sein. Ich würde gerne wissen, welche Richtlinie die richtige ist. Die zweite Frage ist eine weniger wichtige Frage. – Gabriel

+0

Ähm, es gibt nur eine Richtlinie in deiner Frage, aus welcher Quelle du wählen sollst? – wRAR

Antwort

8

Die Betreuer des PEP8-Tools entscheiden, was in sie hineingeht.

Wie Sie bemerkt haben, stimmen diese nicht immer exakt mit dem PEP8 Style Guide überein. In diesem speziellen Fall weiß ich nicht, ob es ein Überbau durch die Betreuer oder eine bewusste Entscheidung ist. Sie müssten sie bitten, das herauszufinden, oder Sie könnten die Antwort in der Commit-Geschichte finden.

Guido bat kürzlich die Betreuer der Tools pep8 und pep257, sie umzubenennen, um diese Verwirrung zu vermeiden. See this issue for example. Als Ergebnis werden die Werkzeuge in pycodestyle bzw. pydocstyle umbenannt.

+1

Danke für die Klärung, dass Alasdair. Ich nahm an, dass Dinge wie diese vor langer Zeit festgelegt worden wären. – Gabriel

5

Es heißt in PEP8:

Wenn Betreiber mit unterschiedlichen Prioritäten verwendet werden, Leerzeichen Zugabe betrachten um die Betreiber mit der niedrigsten Priorität (n). Verwenden Sie Ihr eigenes Urteil; Verwenden Sie jedoch nie mehr als ein Leerzeichen und weisen Sie immer die gleiche Menge an Leerzeichen auf beiden Seiten eines binären Operators auf. (Schwerpunkt ist meine eigene).

In dem aufgeführten Beispiel + hat eine niedrigere Priorität, so der BDFL Leerzeichen um es zu benutzen, wählt und verwendet keine Leerzeichen um höhere Priorität *.

+1

Bitte erklären Sie downvotes. Kann nichts aus der Stille lernen.:) – erip

+1

Ich upvoted und ich habe ** nie ** downvotes ohne Erläuterungen verstanden. Zu mir fügen sie nichts hinzu. – Gabriel

+0

Ich habe nicht downvote, aber ich denke, es wäre, weil Ihre Antwort keine der Fragen des OP beantwortet - also Q1: ist der pep8-Text oder das pep8-Tool korrekt ?, und Q2: wer entscheidet, was reingeht Pep8? – thebjorn