[python-users] Etwas Hilfe zur Still, Code-Übersichtlichkeit und Verbesserungen

Christopher Arndt chris.arndt at web.de
Mo Mär 14 14:42:19 CET 2011


Daniel Hepper schrieb:
> Ich würde ausserdem nicht bei jeder Response explizit success = true
> zurück geben. Statt dessen könntest du im Fehlerfall (status != 200)
> eine aussagekräftige Exception werfen, z.B. bei status 404 eine
> ActionNotSupportedException. Momentan geht die Information warum etwas
> nicht funktioniert hat, verloren.

Und auch im Erfolgsfall würde ich statt einem Dictionary einfach ein
(Named-)Tuple mit zwei Elementen (status, result) zurückgeben. Bzw. wenn
du im Fehlerfall sowieso immer ein Exception auslöst, brauchst du im
Erfolgsfall den Status gar nicht zurückgeben.

> Das ist einiges an Arbeit, aber ich damit wäre die Bibliothek für
> einen Benutzer noch einfacher zu verwenden und wie ich finde noch
> "pythonischer". Was meinen die Anderen dazu?

Auf jeden!


Ein Kleinigkeit ist mir noch in Zeile 90 aufgefallen:

    if(self.account_info() != None):

schreibt man in Python besser so:

    if self.account_info() is not None:

d.h du brauchst keine Klammern um den Ausdruck und da 'None' ein
Singleton ist, ist es gebräuchlich, darauf mit 'is (not)' zu prüfen.
Falls aber self.account_info() nie 0 als gültigen Wert zurückgibt,
reicht auch die Prüfung auf den bool'schen Wert des Rückgabewerts:

    if not self.account_info():

Erinnerung: Normale Objektinstanzen haben in Python standardmäßig den
bool'schen Wert True.

In deinem konkreten Anwendunsfall noch kürzer:

    return bool(self.account_info())

oder

    return self.account_info() is not None


Chris



Mehr Informationen über die Mailingliste python-users