Seite 1 von 1

triviales Stil-Problem

Verfasst: Donnerstag 1. September 2005, 10:02
von henning
Moin, ich habe einen Code-Schnippel, der sinngemäß so aussieht:

Code: Alles auswählen

def funktion(a, b):
  if b == "Spezialfall":
    db = hole_was_aus_ner_datenbank(a, b) # Kann None bei nichtvorhandensein zurückgeben
    if db:
      return db["index"]
    else:
      return normalfall(a, b)
  else:
     return normalfall(a, b)
Also, db enthält entweder ein passendes dict, oder None, wenn es ein dict enthält, enthält jenes auch den Schlüssel "index", ist also nicht False.

Was mich halt an der ganzen Sache stört, ist dieses "doppelte" else am Schluß.
Wahrscheinlich ist es mordsmäßig simpel, dass ein bisschen schöner aufzuschreiben, aber ich kriegs partout nicht hin, wenn das jetzt nicht auch schon das 3. Mal wäre, dass mir son Konstrukt über den Weg läuft, hätte ich auch ger nicht gemeckert :-)

Henning

Verfasst: Donnerstag 1. September 2005, 10:11
von SeB

Code: Alles auswählen

def funktion(a, b): 
  if b == "Spezialfall": 
    db = hole_was_aus_ner_datenbank(a, b) # Kann None bei nichtvorhandensein zurückgeben 
    if db: 
      return db["index"]  
  return normalfall(a, b) 

die else's kannst du getrost weglassen, aber ka ob das eher ein schlechter still ist. und ein "return normalfall(a, b)" ist damit sowieso überflüssig glaub ich.

Verfasst: Donnerstag 1. September 2005, 10:27
von henning
Ah danke, man ich hatte schon oft Tomaten vor den Augen, aber sowas...
Ist jedenfalls genau der "one obvious way to do it" den ich gesucht habe, danke!