Questo è un inizio. Non è una cattiva pratica definire le stringhe più lunghe al di fuori del codice che le utilizza. È un modo per separare dati e comportamento. La tua prima opzione è quella di unire i letterali stringa implicitamente rendendoli adiacenti l'uno all'altro:
("This is the first line of my text, "
"which will be joined to a second.")
O con le continuazioni di fine riga, che è un po 'più fragile, poiché funziona:
"This is the first line of my text, " \
"which will be joined to a second."
Ma questo non:
"This is the first line of my text, " \
"which will be joined to a second."
Vedi la differenza? No? Beh, non lo sarà nemmeno quando è il tuo codice.
L'aspetto negativo di unire implicitamente è che funziona solo con letterali di stringa, non con stringhe prese da variabili, quindi le cose possono diventare un po 'più pelose quando si refactoring. Inoltre, puoi solo interpolare la formattazione sulla stringa combinata nel suo insieme.
In alternativa, puoi unirti esplicitamente usando l'operatore di concatenazione ( +
):
("This is the first line of my text, " +
"which will be joined to a second.")
Esplicito è meglio che implicito, come dice lo zen di Python, ma questo crea tre stringhe invece di una e utilizza il doppio della memoria: ci sono le due che hai scritto, più una che sono le due unite insieme, quindi tu devi sapere quando ignorare lo zen. Il lato positivo è che puoi applicare la formattazione a qualsiasi sottostringa separatamente su ogni riga o all'intero lotto al di fuori delle parentesi.
Infine, puoi usare stringhe tra virgolette:
"""This is the first line of my text
which will be joined to a second."""
Questo è spesso il mio preferito, sebbene il suo comportamento sia leggermente diverso rispetto alla nuova riga e qualsiasi spazio bianco iniziale nelle righe successive verrà visualizzato nella stringa finale. È possibile eliminare la nuova riga con una barra rovesciata in fuga.
"""This is the first line of my text \
which will be joined to a second."""
Questo ha lo stesso problema della stessa tecnica precedente, in quanto il codice corretto differisce dal codice errato solo per gli spazi bianchi invisibili.
Qual è il "migliore" dipende dalla tua situazione particolare, ma la risposta non è semplicemente estetica, ma uno di comportamenti leggermente diversi.