HOWTO · Python
Zeilenfortsetzung in Python
Es gibt zwei Hauptmethoden, die für die Zeilenfortsetzung in Python verwendet werden können.
Auf dieser Seite
Mit der Zeilenfortsetzung in Python kann eine logische Anweisung über mehrere physische Zeilen verteilt werden. So lassen sich lange Ausdrücke oder Sammlungen übersichtlich formatieren. Python setzt eine Anweisung implizit fort, solange eine öffnende runde, eckige oder geschweifte Klammer noch nicht geschlossen ist. Ein umgekehrter Schrägstrich am Ende einer physischen Zeile fordert die Fortsetzung ausdrücklich an.
Was die Zeilenfortsetzung in Python bewirkt
Eine physische Zeile ist eine Zeile, wie sie in der Quelldatei steht. Eine logische Anweisung ist die vollständige Anweisung, die Python verarbeitet. Durch die Zeilenfortsetzung lässt sich eine Anweisung auf mehrere physische Zeilen verteilen, ohne dass jede Zeile zu einer eigenen Anweisung wird. Die Einrückung fortgesetzter Zeilen dient hauptsächlich der Lesbarkeit. Innerhalb von Gruppierungsklammern bestimmen diese Klammern, an welcher Stelle der Ausdruck weitergeht.
Bei gewöhnlichen Ausdrücken können Sie die Bestandteile in runde Klammern setzen, damit die Anweisung offen bleibt. Führen Sie dieses Beispiel aus:
Der Code und die angezeigten Bezeichnungen oder Ausgaben in diesem Abschnitt bleiben auf Englisch.
total = (12 + 18 +
20)
print(total)
50
Implizite Zeilenfortsetzung mit Gruppierungsklammern
Die implizite Fortsetzung funktioniert innerhalb von runden Klammern (), eckigen Klammern [] und geschweiften Klammern {}. Sie eignet sich für mehrzeilige Funktionsaufrufe, Listen, Tupel, Dictionaries und Ausdrücke. Die schließende Klammer beendet den gruppierten Ausdruck, sodass die nächste Anweisung normal beginnen kann. Richten Sie zusammengehörige Elemente einheitlich aus, damit die Struktur gut erkennbar ist.
Dieses Beispiel verwendet eine Liste und ein Dictionary. Beide bleiben über mehrere physische Zeilen hinweg geöffnet. Die ausgegebene englische Zeichenfolge bleibt im unveränderten Beispiel auf Englisch:
Der Code und die angezeigten Bezeichnungen oder Ausgaben in diesem Abschnitt bleiben auf Englisch.
colors = [
"blue",
"orange",
]
settings = {
"theme": "light",
"active": True,
}
print(colors[0], settings["theme"])
Dieselbe Regel gilt für einen Funktionsaufruf oder eine Berechnung in runden Klammern. Eine Fortsetzung ist nur möglich, solange die betreffende Gruppierungsklammer geöffnet ist. Ein Zeilenumbruch zwischen ansonsten getrennten Anweisungen verbindet diese nicht, und die Einrückung allein ermöglicht keine allgemeine Fortsetzung. Verwenden Sie lieber einen vollständig geklammerten Ausdruck, statt sich darauf zu verlassen, dass eine lange Anweisung durch Einrückung zusammenhängend aussieht.
Explizite Zeilenfortsetzung mit einem umgekehrten Schrägstrich
Bei einer expliziten Fortsetzung steht ein umgekehrter Schrägstrich (\) als letztes Zeichen einer physischen Zeile. Python entfernt den Schrägstrich und den darauf folgenden Zeilenumbruch und verarbeitet anschließend dieselbe logische Zeile weiter. Direkt nach dem Schrägstrich muss der Zeilenumbruch folgen: Nachgestellte Leerzeichen, ein Kommentar oder ein anderes Zeichen verhindern die Fortsetzung und verursachen einen SyntaxError.
Der Code und die angezeigten Bezeichnungen oder Ausgaben in diesem Abschnitt bleiben auf Englisch.
message = "Python " + \
"continues this expression."
print(message)
Die Ausgabe des unveränderten Beispiels lautet „Python continues this expression.“; dieser Text bleibt auf Englisch. Mit dieser Schreibweise lässt sich ein Ausdruck aufteilen, wenn Gruppierungsklammern dafür nicht gut geeignet sind. Allerdings muss jede fortgesetzte Zeile genau mit dem umgekehrten Schrägstrich enden. Deshalb können Änderungen leicht zu Fehlern führen: Ein Kommentar nach dem Schrägstrich oder ein Leerzeichen dahinter ändert die Syntax. Auch lässt sich nicht jede Konstruktion mit einem umgekehrten Schrägstrich fortsetzen. Verwenden Sie Gruppierungsklammern, wenn sich der Ausdruck sinnvoll darin darstellen lässt.
Eine Fortsetzungsmethode auswählen und Syntaxfehler vermeiden
Bevorzugen Sie für die meisten mehrzeiligen Ausdrücke und Sammlungen die implizite Fortsetzung innerhalb von runden, eckigen oder geschweiften Klammern. So ist die Fortsetzung in der Struktur des Ausdrucks sichtbar; außerdem können Kommentare in der Gruppe auf eigenen Zeilen stehen. Verwenden Sie einen umgekehrten Schrägstrich, wenn sich die gewünschte Anordnung aus einem bestimmten Grund nicht mit Gruppierungsklammern ausdrücken lässt. Achten Sie darauf, dass der Schrägstrich unmittelbar vor dem Zeilenumbruch steht.
Wenn Python in der Nähe eines Zeilenumbruchs einen Syntaxfehler meldet, prüfen Sie zuerst, ob zu jeder öffnenden Klammer eine schließende Klammer vorhanden ist und ob hinter einem umgekehrten Schrägstrich Leerraum oder ein Kommentar steht. Prüfen Sie auch, ob Sie einen Ausdruck außerhalb einer Gruppierung aufgeteilt haben, ohne eine explizite Fortsetzung anzugeben. Mit diesen Prüfungen finden Sie häufige Ursachen, ohne die Logik der Anweisung zu ändern.
Weitere Hinweise zu Zeilenlängen und Formatierung finden Sie in PEP 8, dem Python-Styleguide. Seine Empfehlungen ergänzen die Syntaxregeln: Wählen Sie eine Anordnung, die den logischen Zusammenhang gut erkennen lässt, und verwenden Sie die implizite Fortsetzung, wenn sie sich natürlich anbietet.