Hier noch die korrigierte Fassung für die Erzeugung der Fehlermeldung in meinem Codebeispiel:
Code: Alles auswählen
def _generate_error_message(pos_error, wd_error):
error_types = ['invalid', 'missing']
pos_error_message = '{} position'.format(error_types[pos_error - 1])
wd_error_message = '{} weekday'.format(error_types[wd_error - 1])
if not wd_error:
return pos_error_message
elif not pos_error:
return wd_error_message
else:
return '{} and {}'.format(pos_error_message, wd_error_message)
Und ja: Spätestens wenn ein dritter Fall hinzukommt, wird das äußerst hässlich, alle Kombinationen zu beachten - noch weitaus hässlicher als beim Wörterbuch.
Zur Problematik: Ich glaube, mutella möchte tatsächlich alle aufgetretenen Fehler gesammelt ausgeben.
@mutella: Wie wäre es mit einer von ValueError abgeleiteten eigenen Exception, die als zusätzliches Argument einfach eine Liste der aufgetretenen Fehler führt? Ggf möchte man diese Liste auch visuell darstellen ("Die folgenden Fehler sind aufgetreten:" und dann pro Fehler eine eigene Zeile). Die visuelle Ausgabe wäre bei einer Nutzung des Kommandozeilen-Interface hilfreich, während programmintern das Werfen einer Exception mit der besagten Liste für den Programmierer IMHO besser - weil "dezenter" - wäre.