Company logo
  • Empleos
  • Bootcamp
  • Acerca de nosotros
  • Para profesionales
    • Inicio
    • Empleos
    • Cursos y retos
    • Preguntas
    • Profesores
    • Bootcamp
  • Para empresas
    • Inicio
    • Nuestro proceso
    • Planes
    • Pruebas
    • Nómina
    • Blog
    • Calculadora

0

143
Vistas
Why can't comments appear after a line continuation character?

Why does Python not allow a comment after a line continuation "\" character, is it a technical or stylistic requirement?

According to the docs (2.1.5):

A line ending in a backslash cannot carry a comment.

and (2.1.3):

A comment signifies the end of the logical line unless the implicit line joining rules are invoked. Comments are ignored by the syntax.

PEP 8 does discourage inline comments so I can see how this may stylistically be "unpythonic." I could also see how the "\" could be ambiguous if it allowed comments (should the interpreter ignore all subsequent tokens or just comments?) but I think a distinction could easily be made.

Coming from Javascript and accustomed to the fluid interface style, I prefer writing chains like the following instead of reassignment:

dataset = tf.data.Dataset.from_tensor_slices(data)\
        .interleave(special_sauce_fn)\
        .shuffle(shuffle_buffer_size)\
        .batch(batch_size)\
        .prefetch()\
        .cache()

Instead of

dataset = dataset.interleave(special_sauce_fn)
dataset = dataset.shuffle(shuffle_buffer_size)
dataset = dataset.batch(batch_size)
dataset = dataset.prefetch()
dataset = dataset.cache()

While this example is rather self-explanatory, at times I feel like a contextual comment could enhance readability of the code.

10 months ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Generally, line-continuation characters are discouraged. Instead, use parentheses:

dataset = (
      tf.data.Dataset.from_tensor_slices(data)
        .interleave(special_sauce_fn) #  comment to your
        .shuffle(shuffle_buffer_size) #  heart's delight
        .batch(batch_size)
        .prefetch()
        .cache()
)
10 months ago · Santiago Trujillo Denunciar

0

For the same reason you can't have whitespace after the backslash. It simplifies the parsing, as it can simply remove any backslash-newline pairs before doing any more parsing. If there were spaces or comments after the backslash, there's no backslash-newline sequence to remove.

10 months 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 empleo Planes Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2023 PeakU Inc. All Rights Reserved.