Eso es un comienzo. No es una mala práctica definir sus cadenas más largas fuera del código que las usa. Es una forma de separar datos y comportamiento. Su primera opción es unir cadenas literales juntas implícitamente haciéndolas adyacentes entre sí:
("This is the first line of my text, "
"which will be joined to a second.")
O con continuaciones de final de línea, que es un poco más frágil, ya que esto funciona:
"This is the first line of my text, " \
"which will be joined to a second."
Pero esto no:
"This is the first line of my text, " \
"which will be joined to a second."
¿Ver la diferencia? ¿No? Bueno, tampoco lo harás cuando sea tu código.
La desventaja de la unión implícita es que solo funciona con literales de cadena, no con cadenas tomadas de variables, por lo que las cosas pueden ponerse un poco más difíciles cuando refactoriza. Además, solo puede interpolar el formato en la cadena combinada como un todo.
Alternativamente, puede unirse explícitamente utilizando el operador de concatenación ( +
):
("This is the first line of my text, " +
"which will be joined to a second.")
Explícito es mejor que implícito, como dice el zen de python, pero esto crea tres cadenas en lugar de una, y usa el doble de memoria: están las dos que ha escrito, más una, que son las dos juntas, por lo que Hay que saber cuándo ignorar el zen. Lo bueno es que puede aplicar formato a cualquiera de las subcadenas por separado en cada línea, o a todo el lote desde fuera de los paréntesis.
Finalmente, puede usar cadenas entre comillas triples:
"""This is the first line of my text
which will be joined to a second."""
Este es a menudo mi favorito, aunque su comportamiento es ligeramente diferente ya que la nueva línea y cualquier espacio en blanco inicial en las líneas posteriores se mostrarán en su cadena final. Puede eliminar la nueva línea con una barra invertida de escape.
"""This is the first line of my text \
which will be joined to a second."""
Esto tiene el mismo problema que la misma técnica anterior, ya que el código correcto solo difiere del código incorrecto por el espacio en blanco invisible.
Cuál es el "mejor" depende de su situación particular, pero la respuesta no es simplemente estética, sino de comportamientos sutilmente diferentes.