Nehmen wir eine Iteration an, in der wir eine Funktion ohne Rückgabewert aufrufen. Die Art und Weise, wie sich mein Programm verhalten sollte, wird in diesem Pseudocode erklärt:
for element in some_list:
foo(element)
def foo(element):
do something
if check is true:
do more (because check was succesful)
else:
return None
do much much more...
Wenn ich dies in Python implementiere, stört es mich, dass die Funktion a zurückgibt None
. Gibt es eine bessere Möglichkeit, "eine Funktion zu verlassen, die keinen Rückgabewert hat, wenn eine Prüfung im Hauptteil der Funktion fehlschlägt"?
raise
eine Ausnahme (oder sehr selten die Funktion True / False zurückgeben)Antworten:
Sie könnten einfach verwenden
das macht genau das gleiche wie
Ihre Funktion wird auch zurückgegeben,
None
wenn die Ausführung das Ende des Funktionskörpers erreicht, ohne einereturn
Anweisung zu treffen . Nichts zurückzugeben ist dasselbe wieNone
in Python zurückzukehren.quelle
return
funktioniert nicht, wenn ich die vona = method()
mir verwendete Methode einstelle ,return
läuft der Code immer noch hinter a. exit sollte wie php exit () sein, es bricht das Programm sofort.import sys
zuerst und dann,sys.exit()
wenn Sie das Programm beenden möchten, aber Erfolg melden möchten odersys.exit("some error message to print to stderr")
.Ich würde vorschlagen:
quelle
Sie können die
return
Anweisung ohne Parameter verwenden, um eine Funktion zu beendenoder eine Ausnahme auslösen, wenn Sie über das Problem informiert werden möchten
quelle