Isso é um começo. Não é uma prática ruim definir suas seqüências mais longas fora do código que as usa. É uma maneira de separar dados e comportamento. Sua primeira opção é unir literais de cadeia implicitamente, tornando-os adjacentes um ao outro:
("This is the first line of my text, "
"which will be joined to a second.")
Ou com continuações de final de linha, que são um pouco mais frágeis, pois isso funciona:
"This is the first line of my text, " \
"which will be joined to a second."
Mas isso não acontece:
"This is the first line of my text, " \
"which will be joined to a second."
Veja a diferença? Não? Bem, você não vai quando é o seu código também.
A desvantagem da junção implícita é que ela só funciona com literais de strings, não com strings de variáveis, para que as coisas fiquem um pouco mais peludas quando você refatorar. Além disso, você só pode interpolar a formatação na cadeia combinada como um todo.
Como alternativa, você pode ingressar explicitamente usando o operador de concatenação ( +
):
("This is the first line of my text, " +
"which will be joined to a second.")
Explícito é melhor do que implícito, como diz o zen do python, mas isso cria três strings em vez de um e usa o dobro de memória: existem as duas que você escreveu, mais uma que são as duas juntas, então você tem que saber quando ignorar o zen. A vantagem é que você pode aplicar a formatação a qualquer uma das substrings separadamente em cada linha ou a todo o lote de fora dos parênteses.
Por fim, você pode usar cadeias de caracteres triplas:
"""This is the first line of my text
which will be joined to a second."""
Geralmente, é o meu favorito, embora seu comportamento seja ligeiramente diferente, pois a nova linha e qualquer espaço em branco à esquerda nas linhas subseqüentes aparecerão na sua sequência final. Você pode eliminar a nova linha com uma barra invertida de escape.
"""This is the first line of my text \
which will be joined to a second."""
Isso tem o mesmo problema que a mesma técnica acima, pois o código correto difere apenas do código incorreto pelo espaço em branco invisível.
Qual é o "melhor" depende da sua situação específica, mas a resposta não é simplesmente estética, mas um comportamento sutilmente diferente.