C'est un début. Ce n'est pas une mauvaise pratique de définir vos chaînes plus longues en dehors du code qui les utilise. C'est un moyen de séparer les données et le comportement. Votre première option est de joindre implicitement les littéraux de chaîne en les rendant adjacents les uns aux autres:
("This is the first line of my text, "
"which will be joined to a second.")
Ou avec des continuations de fin de ligne, ce qui est un peu plus fragile, car cela fonctionne:
"This is the first line of my text, " \
"which will be joined to a second."
Mais cela ne:
"This is the first line of my text, " \
"which will be joined to a second."
Regarde la différence? Non? Eh bien, vous ne le ferez pas non plus quand c'est votre code.
L'inconvénient de la jointure implicite est qu'elle ne fonctionne qu'avec des chaînes littérales, pas avec des chaînes extraites de variables, donc les choses peuvent devenir un peu plus velues lorsque vous refactorisez. En outre, vous ne pouvez interpoler la mise en forme que sur la chaîne combinée dans son ensemble.
Alternativement, vous pouvez rejoindre explicitement en utilisant l'opérateur de concaténation ( +
):
("This is the first line of my text, " +
"which will be joined to a second.")
Explicite vaut mieux qu'implicite, comme le dit le zen de python, mais cela crée trois chaînes au lieu d'une, et utilise deux fois plus de mémoire: il y a les deux que vous avez écrites, plus une qui est les deux réunies, donc vous faut savoir quand ignorer le zen. L'avantage est que vous pouvez appliquer la mise en forme à l'une des sous-chaînes séparément sur chaque ligne, ou à l'ensemble du lot en dehors des parenthèses.
Enfin, vous pouvez utiliser des chaînes entre guillemets triples:
"""This is the first line of my text
which will be joined to a second."""
C'est souvent mon préféré, bien que son comportement soit légèrement différent car la nouvelle ligne et tout espace blanc de début sur les lignes suivantes apparaîtront dans votre chaîne finale. Vous pouvez éliminer la nouvelle ligne avec une barre oblique inverse d'échappement.
"""This is the first line of my text \
which will be joined to a second."""
Cela pose le même problème que la même technique ci-dessus, en ce que le code correct ne diffère du code incorrect que par des espaces invisibles.
Laquelle est "la meilleure" dépend de votre situation particulière, mais la réponse n'est pas simplement esthétique, mais l'un des comportements subtilement différents.