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 unirse a los literales de cadena juntos de manera implícita, haciéndolos adyacentes entre sí:
("This is the first line of my text, "
"which will be joined to a second.")
O con el fin de línea continuaciones, 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, no lo harás cuando sea tu código tampoco.
La desventaja de la unión implícita es que solo funciona con cadenas literales, no con cadenas tomadas de variables , por lo que las cosas pueden ponerse un poco más peludas cuando se refactoriza. Además, solo puede interpolar el formato en la cadena combinada como un todo.
Como alternativa, puede unirse de manera explícita usando 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 el Zen de Python dice, pero esto crea tres cuerdas en vez de uno, y utiliza dos veces tanta memoria: hay dos que has escrito, más uno que son los dos unidos, así que debes 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 al lote completo desde fuera de los paréntesis.
Por último, puede utilizar cadenas de triples citado:
"""This is the first line of my text
which will be joined to a second."""
Esto a menudo es mi favorito, aunque su comportamiento es ligeramente diferente como el salto de línea y espacios en blanco, en las líneas siguientes se mostrarán en su cadena final . Puede eliminar la línea nueva 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, en el que el código correcta sólo se diferencia de un código incorrecto por espacios en blanco invisible.
Cuál es el "mejor" depende de su situación particular, pero la respuesta no es simplemente estética, sino una de conductas sutilmente diferentes.
Parece una buena opción. ¿Qué no te gusta de eso? –
Un poco subjetivo, ¿verdad? :) –
relacionado: http://stackoverflow.com/questions/1940710/syntax-quirks-or-why-is-that-valid-python (concatenación de cadena en python) – jldupont