Seremba John Paul zeigt in seinem Artikel »Idiomatic Python. Coding the smart way« in 15 Beispielen, wie man guten und lesbaren Code in Python schreibt. Die meisten dieser Beispiele überzeugen. Gleich das erste etwa:
if x <= y and y <= z:
# do something
if x <= y <= z:
# do something
Oder dieses (der Autor des Artikels ist offensichtlich Afrikaner 😉 ):
cities = ['Nairobi', ‘Kampala’, ‘Lagos’]
index = 0
while index < len(cities):
print(cities[index])
index += 1
cities = [‘Nairobi’, ‘Kampala’, ‘Lagos’]
for city in cities:
print(city)
Ich will hier nicht den gesamten Artikel widerkäuen, Ihr könnt ihn ja schließlich selber lesen, aber ein weiteres Beispiel sei mir noch erlaubt:
auth = None
if 'auth_token' in payload:
auth = payload['auth_token']
else:
auth = 'Unauthorized'
auth = payload.get('auth_token', 'Unauthorized')
Das letzte Beispiel ist ein wenig tricky und setzt die Kenntnis der dict.get()
-Methode voraus, macht aber – abgesehen von der Kürze – den Code fehlertoleranter und sehr viel lesbarer.
Der Autor verweist zum Schluß des Artikels auf das Buch Writing Idiomatic Python von Jeff Knupp. Dort sollen weitere Tips zu finden sein.
1 (Email-) Kommentar
Da überzeugt allenfalls Beispiel #2, und das auch nur, weil hier eine maximal umständliche while- durch das passende for-Konstrukt ersetzt wird.
#1 ist syntaktischer Zucker, der intern zum als schlecht bezeichneten expliziten Konstrukt aufgelöst werden muss, weil der Ausdruck x <= y <= z, konservativ geparst, einfach Bullshit liefert (x <= y liefert einen Wahrheitswert – wie will ich das per <=-Operator sinnvoll mit einem wahrscheinlich numerischen z vergleichen?), und #3 ist in der „Schlecht“-Version gut lesbar und direkter Ausdruck des Algorithmus’, während die „Gut“-Version auf Seiteneffekten beruht, zum Verständnis, wie Du schreibst, intime Kenntnisse von Bibliotheks-Interna nötig sind und der Ausdruck nicht sinnvoll als Verzweigung lesbar ist.
– Moss (Kommentieren) (#)
Über …
Der Schockwellenreiter ist seit dem 24. April 2000 das Weblog digitale Kritzelheft von Jörg Kantel (Neuköllner, EDV-Leiter, Autor, Netzaktivist und Hundesportler — Reihenfolge rein zufällig). Hier steht, was mir gefällt. Wem es nicht gefällt, der braucht ja nicht mitzulesen. Wer aber mitliest, ist herzlich willkommen und eingeladen, mitzudiskutieren!
Alle eigenen Inhalte des Schockwellenreiters stehen unter einer Creative-Commons-Lizenz, jedoch können fremde Inhalte (speziell Videos, Photos und sonstige Bilder) unter einer anderen Lizenz stehen.
Der Besuch dieser Webseite wird aktuell von der Piwik Webanalyse erfaßt. Hier können Sie der Erfassung widersprechen.
Diese Seite verwendet keine Cookies. Warum auch? Was allerdings die iframes
von Amazon, YouTube und Co. machen, entzieht sich meiner Kenntnis.
Werbung