Dies ist eine Frage des Stils (oder der Präferenz), da es dem Dolmetscher egal ist. Persönlich würde ich versuchen, nicht die endgültige Aussage einer Funktion zu machen, die einen Wert auf einer anderen Einrückungsebene als der Funktionsbasis zurückgibt. Das else in Beispiel 1 verdeckt, wenn auch nur geringfügig, wo sich das Ende der Funktion befindet.
Bevorzugt benutze ich:
return A+1 if (A > B) else A-1
Da es sowohl der guten Konvention entspricht, eine einzige return-Anweisung als letzte Anweisung in der Funktion zu haben (wie bereits erwähnt), als auch dem guten funktionalen Programmierparadigma, imperative Zwischenergebnisse zu vermeiden.
Bei komplexeren Funktionen ziehe ich es vor, die Funktion in mehrere Unterfunktionen zu unterteilen, um vorzeitige Rückgaben nach Möglichkeit zu vermeiden. Ansonsten verwende ich wieder eine imperative Stilvariable namens rval. Ich versuche, nicht mehrere return-Anweisungen zu verwenden, es sei denn, die Funktion ist trivial oder die return-Anweisung vor dem Ende ist auf einen Fehler zurückzuführen. Eine vorzeitige Rückkehr unterstreicht die Tatsache, dass Sie nicht weitermachen können. Für komplexe Funktionen, die in mehrere Unterfunktionen verzweigen sollen, versuche ich, sie als case-Anweisungen zu codieren (z. B. gesteuert durch ein Diktat).
Einige Plakate haben die Betriebsgeschwindigkeit erwähnt. Die Laufzeitgeschwindigkeit ist für mich zweitrangig, da Python nicht die beste Sprache ist, wenn Sie Ausführungsgeschwindigkeit benötigen. Ich benutze Python als die Effizienz der Codierung (dh das Schreiben von fehlerfreiem Code), die für mich wichtig ist.