Das ist ein Anfang. Es ist keine schlechte Praxis, Ihre längeren Zeichenfolgen außerhalb des Codes zu definieren, der sie verwendet. Es ist eine Möglichkeit, Daten und Verhalten zu trennen. Ihre erste Option besteht darin, Zeichenfolgenliterale implizit miteinander zu verbinden, indem Sie sie nebeneinander platzieren:
("This is the first line of my text, "
"which will be joined to a second.")
Oder mit Fortsetzungen am Zeilenende, was etwas fragiler ist, da dies funktioniert:
"This is the first line of my text, " \
"which will be joined to a second."
Das geht aber nicht:
"This is the first line of my text, " \
"which will be joined to a second."
Sieh den Unterschied? Nein? Das wirst du auch nicht, wenn es dein Code ist.
Der Nachteil des impliziten Joinings besteht darin, dass es nur mit String-Literalen funktioniert, nicht mit Strings, die aus Variablen stammen. Daher können die Dinge beim Refactor etwas haariger werden. Außerdem können Sie die Formatierung nur für die gesamte kombinierte Zeichenfolge interpolieren.
Alternativ können Sie explizit mit dem Verkettungsoperator ( +
) beitreten :
("This is the first line of my text, " +
"which will be joined to a second.")
Explizit ist besser als implizit, wie der Zen von Python sagt, aber dies erzeugt drei Zeichenfolgen anstelle einer und verbraucht doppelt so viel Speicher: Es gibt die beiden, die Sie geschrieben haben, plus eine, bei der es sich um die beiden handelt, die miteinander verbunden sind, also Sie muss wissen, wann man den Zen ignoriert. Der Vorteil ist, dass Sie die Formatierung auf jede der Teilzeichenfolgen separat in jeder Zeile oder auf das gesamte Los von außerhalb der Klammern anwenden können.
Schließlich können Sie Zeichenfolgen in dreifachen Anführungszeichen verwenden:
"""This is the first line of my text
which will be joined to a second."""
Dies ist oft mein Favorit, obwohl sein Verhalten etwas anders ist, da die neue Zeile und alle führenden Leerzeichen in nachfolgenden Zeilen in Ihrer letzten Zeichenfolge angezeigt werden. Sie können den Zeilenumbruch mit einem Escape-Backslash entfernen.
"""This is the first line of my text \
which will be joined to a second."""
Dies hat das gleiche Problem wie die oben beschriebene Technik, da sich der richtige Code nur durch unsichtbare Leerzeichen vom falschen Code unterscheidet.
Welches "am besten" ist, hängt von Ihrer speziellen Situation ab, aber die Antwort ist nicht einfach ästhetisch, sondern eines von subtil unterschiedlichen Verhaltensweisen.