Kurzschlussauswertung wie Pythons "und" beim Speichern der Prüfergebnisse

Ich habe mehrere teure Funktionen, die Ergebnisse zurückgeben. Ich möchte ein Tupel der Ergebnisse aller Prüfungen zurückgeben, wenn alle Prüfungen erfolgreich sind. Wenn jedoch eine Prüfung fehlschlägt, möchte ich die späteren Prüfungen nicht aufrufen, wie das Kurzschlussverhalten vonand. Ich könnte nistenif -Anweisungen, aber das wird aus dem Ruder laufen, wenn es viele Prüfungen gibt. Wie kann ich das Kurzschlussverhalten von @ ermitteland während auch die Ergebnisse für eine spätere Verwendung gespeichert werden?

def check_a():
    # do something and return the result,
    # for simplicity, just make it "A"
    return "A"

def check_b():
    # do something and return the result,
    # for simplicity, just make it "B"
    return "B"

...

Dies schließt nicht kurz:

a = check_a()
b = check_b()
c = check_c()

if a and b and c:
    return a, b, c

Das ist chaotisch, wenn es viele Prüfungen gibt:

if a:
   b = check_b()

   if b:
      c = check_c()

      if c:
          return a, b, c

Gibt es einen kürzeren Weg, dies zu tun?

Antworten auf die Frage(26)

Ihre Antwort auf die Frage