Anmerkungen zum if-Ausdruck in Python
Teilnehmerfrage Warum steht die Bedingung des if-Ausdrucks in der Mitte?
Laut »www.python.org/dev/peps/pep-0308« gab es 2003 eine Abstimmung über verschiedene mögliche Schreibweisen unter Python-Anwendern, bei der es kein klares Ergebnis gab. Laut derselben Quelle entschied sich Guido van Rossum dann 2005 für die heutige Schreibweise.
Im Englischen werden Teile von Sätzen, die gegenüber ihrer normalen Position verschoben wurden, durch Kommata abgetrennt. Eine if -Klausel wird dort nicht durch ein Komma abgetrennt, wenn sie hinter ihrer Konsequenz steht. Insofern könnte man sagen, daß dies die normale Position einer if -Klausel im Englischen ist.
Man kann sich auch vorstellen, daß die Reihenfolge folgendermaßen motiviert ist: zunächst wird ein Programm naïv geschrieben, ohne an Spezialfälle zu denken.
- Funktionsdefinition
def k( x ):
return 1 / x
Später fällt dem Autor noch ein Spezialfall ein, und er fügt nun die entsprechende Bedingung für den Spezialfall an den Normalfall an.
- Funktionsdefinition
def k( x ):
return 1 / x if x else None
Die Reihenfolge erlaubt es, den Normalfall »return 1/x« zuerst zu schreiben und die Regelung für einen speziellen Fall als eine Art von „Anmerkung“ dahinter: »…if x else None«.