Ich persönlich mag es, langen if-Anweisungen einen Sinn zu geben. Ich müsste den Code durchsuchen, um ein passendes Beispiel zu finden, aber hier ist das erste Beispiel, das mir einfällt: Nehmen wir an, ich stoße auf eine eigenartige Logik, bei der ich eine bestimmte Seite in Abhängigkeit von vielen Variablen anzeigen möchte.
Englisch: "Wenn der eingeloggte Benutzer KEIN Administrator ist, sondern nur ein normaler Lehrer und selbst kein Schüler ist..."
if not user.isAdmin() and user.isTeacher() and not user.isStudent():
doSomething()
Das mag zwar gut aussehen, aber das Lesen dieser if-Anweisungen ist eine Menge Arbeit. Wie wäre es, wenn wir die Logik einem Label zuordnen, das Sinn macht. Das "Label" ist eigentlich der Name der Variablen:
displayTeacherPanel = not user.isAdmin() and user.isTeacher() and not user.isStudent()
if displayTeacherPanel:
showTeacherPanel()
Das mag albern klingen, aber Sie könnten eine weitere Bedingung haben, bei der Sie ein anderes Element NUR dann anzeigen möchten, wenn Sie das Lehrerpanel anzeigen ODER wenn der Benutzer standardmäßig Zugriff auf dieses andere spezifische Panel hat:
if displayTeacherPanel or user.canSeeSpecialPanel():
showSpecialPanel()
Wenn Sie versuchen, die obige Bedingung zu schreiben, ohne Variablen zum Speichern und Kennzeichnen Ihrer Logik zu verwenden, erhalten Sie nicht nur eine sehr unübersichtliche, schwer lesbare logische Aussage, sondern Sie wiederholen sich auch. Es gibt zwar begründete Ausnahmen, aber denken Sie daran: Wiederholen Sie sich nicht (DRY).
2 Stimmen
Wenn Ihr Editor die Funktion Pep8 Python-Paket, um zu erkennen, wann eine Warnung über PEP8 Verstöße, müssen Sie entweder den E125-Fehler deaktivieren oder eine Formatierungslösung finden, die den Anforderungen der
pep8
Kriterien des Pakets. Die Websitepep8
des Pakets Ausgabe #126 geht es darum, das Paket strikt an die PEP8-Spezifikation anzupassen. Die Diskussion zu diesem Thema enthält einige Stilvorschläge, die auch hier zu sehen sind.1 Stimmen
Beachten Sie, dass pep8 für das erste Beispiel "E129 visuell eingerückte Zeile mit gleichem Einzug wie die nächste logische Zeile" ausgibt.
0 Stimmen
Diese Frage ist sehr alt und es gibt eine Menge Meinungen, aber sie ist eindeutig meinungsbasiert. Die Formulierungen "ist nicht sehr ansprechend" und "ist nicht sehr hübsch" legen die Kriterien dafür fest, dass die vermeintlich richtige Antwort diejenige ist, die am besten mit den ästhetischen Vorlieben des Fragestellers übereinstimmt (d. h. eine Meinung). Ich könnte genau dieselbe Frage stellen und behaupten, dass es sich nicht um ein Duplikat handelt, weil mein ästhetischer Geschmack sie als anders qualifiziert und zu einer anderen "richtigen" Antwort führen wird.
2 Stimmen
@Z4-tier: Ja, es ist eine Meinungsäußerung. Aber sie wurde vor 12 Jahren gestellt. SO war eine andere, kinder Ort zu dieser Zeit. In letzter Zeit häufen sich die Ablehnungen, da sich die Standards von SO geändert haben. Dennoch hoffe ich, dass er mit über 1 Mio. Aufrufen mehr Gutes als Schlechtes in der Welt bewirkt. Ich kann mir gut vorstellen, dass Leute, die sich heute die gleiche Frage stellen, sie googeln, auf diese Diskussion stoßen und sie als nützlich empfinden, um ihr Denken zu kalibrieren. Es gibt mehrere hochgradig stimmige Antworten, aus denen man wählen kann.
2 Stimmen
@EliBendersky völlig einverstanden. Es ist, als hätte SO eine ständige Identitätskrise: Obwohl es eindeutig nicht "den Regeln" entspricht (die Anzahl der gültigen Antworten ist ein Beweis dafür), ist es ebenso klar, dass es einen Mehrwert bietet. Alles in allem würde ich lieber mit jemandem zusammenarbeiten, der artikulierbare und begründete Ansichten über den Codierungsstil entwickelt hat, selbst wenn sich seine Ansichten von meinen unterscheiden.