To jest początek. Definiowanie dłuższych ciągów poza kodem, który ich używa, nie jest złą praktyką. To sposób na oddzielenie danych i zachowania. Pierwszą opcją jest niejawne łączenie ze sobą literałów łańcuchowych, ustawiając je obok siebie:
("This is the first line of my text, "
"which will be joined to a second.")
Lub z kontynuacjami kończącymi linię, co jest nieco bardziej delikatne, ponieważ działa:
"This is the first line of my text, " \
"which will be joined to a second."
Ale to nie jest:
"This is the first line of my text, " \
"which will be joined to a second."
Zobacz różnicę? Nie? Cóż, nie zrobisz tego, jeśli to twój kod.
Wadą niejawnego łączenia jest to, że działa tylko z literałami łańcuchowymi, a nie z łańcuchami pobranymi ze zmiennych, więc rzeczy mogą stać się trochę bardziej skomplikowane podczas refaktoryzacji. Ponadto można interpolować formatowanie tylko dla połączonego ciągu jako całości.
Alternatywnie możesz dołączyć jawnie za pomocą operatora konkatenacji ( +
):
("This is the first line of my text, " +
"which will be joined to a second.")
Jawne jest lepsze niż niejawne, jak mówi zen w Pythonie, ale tworzy to trzy ciągi zamiast jednego i zużywa dwa razy więcej pamięci: są dwa, które napisałeś, plus jeden, który jest połączeniem dwóch z nich, więc trzeba wiedzieć, kiedy ignorować zen. Plusem jest to, że możesz zastosować formatowanie do dowolnego z podciągów osobno w każdym wierszu lub do całej partii spoza nawiasów.
Na koniec możesz użyć ciągów w potrójnych cudzysłowach:
"""This is the first line of my text
which will be joined to a second."""
Jest to często mój ulubiony element, chociaż jego zachowanie jest nieco inne, ponieważ nowa linia i wszelkie początkowe białe znaki w kolejnych wierszach pojawią się w końcowym ciągu. Możesz usunąć znak nowej linii za pomocą uciekającego odwrotnego ukośnika.
"""This is the first line of my text \
which will be joined to a second."""
Ma to ten sam problem, co ta sama technika powyżej, ponieważ poprawny kod różni się od niepoprawnego tylko niewidoczną białą spacją.
To, które z nich jest „najlepsze”, zależy od konkretnej sytuacji, ale odpowiedź nie jest po prostu estetyczna, ale jest jednym z subtelnie różnych zachowań.