Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

582
Vistas
¿Es peligrosa la continuación de línea con barra invertida en Python?

Entiendo que la mejor práctica actual para la continuación de línea es usar la continuación implícita entre paréntesis. Por ejemplo:

 a = (1 + 2 + 3 + 4)

De PEP8 ( https://www.python.org/dev/peps/pep-0008/ ):

La forma preferida de envolver líneas largas es usando la continuación de línea implícita de Python dentro de paréntesis, corchetes y llaves. Las líneas largas se pueden dividir en varias líneas colocando expresiones entre paréntesis. Estos deben usarse en lugar de usar una barra invertida para la continuación de la línea.

Tengo la intención de seguir esta convención en el futuro, sin embargo, mi pregunta se refiere a qué tan preocupado debería estar por los errores en el código existente que continúa las líneas con una barra invertida:

 a = 1 + 2 \ + 3 + 4

Los documentos de Python ( https://docs.python.org/2.7/howto/doanddont.html#using-backslash-to-continue-statements ) advierten que un espacio extraviado al final de una línea después de la barra invertida puede hacer que el código "sutilmente incorrecto", sin embargo, como se señala en esta pregunta ( ¿Cómo puede ser sutilmente incorrecto usar la continuación de línea de barra invertida de Python? ), el ejemplo dado simplemente da como resultado que se genere un SyntaxError, que no es un problema sutil, ya que se identifica fácilmente. Entonces, mi pregunta es, ¿existen casos en los que continuar una línea con una barra invertida cause algo peor que un error de análisis? Estoy interesado en ejemplos en los que un error en las continuaciones de barra invertida produce una excepción de tiempo de ejecución o, peor aún, un código que se ejecuta en silencio pero con un comportamiento no deseado.

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

"Sutilmente incorrecto" es subjetivo; cada uno tiene su propia tolerancia a la sutileza.

Un ejemplo citado a menudo de continuación de línea posiblemente dañina, independientemente de \ está separado o implícito, es la continuación de cadenas en una estructura de contenedor:

 available_resources = [ "color monitor", "big disk", "Cray" "on-line drawing routines", "mouse", "keyboard", "power cables", ]

¿Los recursos disponibles incluyen una supercomputadora Cray o Crayon-line drawing routines ? (Este ejemplo es del libro "Expert C Programming", adaptado para Python aquí).

Este bloque de código no es ambiguo, pero su apariencia visual creada por la continuación + sangría puede ser engañosa y puede causar un error humano en la comprensión.

over 4 years ago · Santiago Trujillo Denunciar

0

Un caso en el que puedo pensar es cuando el programador olvida un \ . Esto es especialmente probable cuando alguien viene y agrega valores en una fecha posterior. Aunque este ejemplo todavía es algo artificial porque las líneas de continuación deben tener el mismo nivel de sangría (de lo contrario, fallaría con un error de sangría).

Ejemplo:

 a = 1 \ + 2 \ + 3 assert a == 6

Más tarde, alguien agrega una línea:

 a = 1 \ + 2 \ + 3 # Whoops, forgot to add \ ! + 4 assert a == 10 # Nope
over 4 years ago · Santiago Trujillo Denunciar

0

Creo que como @ 0x5453, si agrega incorrectamente una barra invertida a su código.
Esta barra invertida hace que el comentario se concatene con a.

 a = "Some text. " \ """Here are some multiline comments that will be added to a"""
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda