¿Cuál es la ventaja de tener literales de cadena multilínea y de una sola línea en python?

Sé que las cadenas de comillas triples se utilizan como cadenas de documentación, pero ¿hay una necesidad real de tener dos literales de cadena?

¿Hay algún caso de uso cuando la identificación entre una línea y una línea múltiple sea útil?

en Clojure tenemos 1 cadena literal, es multilínea y la usamos como cadena de documentación. Entonces, ¿por qué la diferencia en Python?

La ventaja de tener que ser explícito sobre la creación de un literal de cadena multilínea probablemente se demuestra mejor con un ejemplo:

with open("filename.ext) as f: for line in f: print(line.upper()) 

Por supuesto, cualquier editor decente de resaltado de syntax detectará eso, pero:

  1. No siempre es el caso que esté utilizando un editor de resaltado de syntax
  2. Python no tiene control sobre qué editor estás usando.

Dos de los principios de diseño de Python son que

  • los errores nunca deben pasar en silencio, y
  • explícito es mejor que implícito

Fuera de las cadenas de documentos, las cadenas multilínea rara vez se usan en Python, por lo que es mucho más probable que ocurra el ejemplo anterior (todos a veces se tipifican erróneamente) que en el caso de que desee una cadena multilínea, pero se olvidó de decirlo explícitamente por medio de tres citas. .

Es similar al uso que Python hace de espacios en blanco significativos, ya que imponer una buena práctica de sangrado consistente significa que los errores son mucho más fáciles de detectar que, por ejemplo, en un lenguaje delimitado por corsé.