C'est un début. Ce n'est pas une mauvaise pratique de définir vos chaînes plus longues à l'extérieur du code qui les utilise. C'est une façon de séparer les données et le comportement. Votre première option est de rejoindre les littéraux de chaîne ensemble implicitement en les rendant adjacents l'un à l'autre:
("This is the first line of my text, "
"which will be joined to a second.")
Ou avec la ligne de fin de prolongements, 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 ce n'est pas:
"This is the first line of my text, " \
"which will be joined to a second."
Vous voyez la différence? Non? Eh bien, vous n'aurez pas quand c'est à votre code.
L'inconvénient de l'implicite rejoindre, c'est qu'il ne fonctionne qu'avec des littéraux de chaîne, pas avec des chaînes de prises de
variables, de sorte que les choses peuvent devenir un peu plus poilu lorsque vous refactoriser. Aussi, vous ne pouvez interpoler mise en forme sur l'ensemble de la chaîne 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 est mieux que implicites, comme le zen de python dit, mais cela crée trois cordes au lieu d'une, et utilise deux fois plus de mémoire: il y a les deux que vous avez écrit, plus un qui est les deux réunis, de sorte que vous devez connaître lorsque ignorer le zen. L'avantage est que vous pouvez appliquer la mise en forme
un des sous-chaînes séparément sur chaque ligne, ou à l'ensemble du lot de l'extérieur des parenthèses.
Enfin, vous pouvez utiliser le triple-chaînes entre guillemets:
"""This is the first line of my text
which will be joined to a second."""
C'est souvent une de mes préférées, même si son comportement est légèrement différent que le saut de ligne et préfixes d'espaces sur les lignes suivantes apparaîtront dans votre chaîne finale. Vous pouvez supprimer le saut de ligne avec une barre oblique inverse d'échappement.
"""This is the first line of my text \
which will be joined to a second."""
Cela a le même problème que la même technique que ci-dessus, que le code est correct seulement diffère de code incorrect par d'invisibles espaces.
Lequel est le "mieux" dépend de votre situation particulière, mais la réponse n'est pas simplement esthétique, mais l'un d'subtilement différents comportements.