2014-02-06 3 views
12

Es fällt mir schwer, diesen Code zu reparieren, damit er den Richtlinien von PEP8 entspricht. Ich habe versucht, die Zeile mit einem Backslash zu brechen und dann mit einer Reihe von Klammern zu umschließen. Außerdem stellte ich sicher, dass die zweite Linie direkt nach der ersten rechten Klammer kam.Wie wird die Fortsetzungszeile für den visuellen Einzug über eingerückt verwendet?

if (len(self._stools[origin]) > 0 and len(self._stools[dest]) and 
     self.top_cheese(origin).size > self.top_cheese(dest).size): 
     raise IllegalMoveError 

So jedes Mal, wenn ich laufe pep8.py auf diesem Stück Code, den ich bekomme:

TOAHModel.py:94:14: E127 Fortsetzung Linie über gegliederte für visuellen indent.

+1

Was ist dein Problem? – monkut

Antwort

16

Ich schätze, Sie bekommen eine "Fortsetzung Zeile unterscheidet sich nicht von der nächsten logischen Zeile". Die Lösung ist die zweite Zeile eine andere Kerbe zu bewegen -

if (len(self._stools[origin]) > 0 and len(self._stools[dest]) and 
     self.top_cheese(origin).size > self.top_cheese(dest).size): 
    raise IllegalMoveError 

Der Grund dafür ist, dass self.top_cheese(origin).size auf derselben Einrückungstiefe wie raise IllegalMoveError ist, die für den Leser schwierig sein kann, weil es vielleicht nicht offensichtlich ist, wo die if-Anweisung endet und der eigentliche Block innerhalb der if-Anweisung beginnt. Sie können argumentieren, dass dies nicht viel besser aussieht, aber so ist es.

+0

Danke für die sehr klare Erklärung! Es passiert jetzt PEP8! :) – wonggr

+1

Und jetzt sieht es aus wie 'self._stools [Ursprung] ... self.top_cheese (dest) .size)' ist ein Ausdruck, der ein Argument für 'len' ist. =/ – jamesdlin

+0

heh, ich würde definitiv argumentieren, dass es nicht viel besser aussieht! – grasshopper

Verwandte Themen