¿Por qué Python no permite un comentario después de un carácter "\" de continuación de línea, es un requisito técnico o estilístico?
De acuerdo con los documentos (2.1.5) :
Una línea que termina en una barra invertida no puede llevar un comentario.
y (2.1.3) :
Un comentario significa el final de la línea lógica a menos que se invoquen las reglas implícitas de unión de líneas. Los comentarios son ignorados por la sintaxis.
PEP 8 desalienta los comentarios en línea, por lo que puedo ver cómo esto puede ser estilísticamente "no pitónico". También pude ver cómo el "\" podría ser ambiguo si permitiera comentarios (¿debería el intérprete ignorar todos los tokens posteriores o solo los comentarios?), Pero creo que se podría hacer una distinción fácilmente.
Viniendo de Javascript y acostumbrado al estilo de interfaz fluida, prefiero escribir cadenas como la siguiente en lugar de reasignación:
dataset = tf.data.Dataset.from_tensor_slices(data)\ .interleave(special_sauce_fn)\ .shuffle(shuffle_buffer_size)\ .batch(batch_size)\ .prefetch()\ .cache()
En lugar de
dataset = dataset.interleave(special_sauce_fn) dataset = dataset.shuffle(shuffle_buffer_size) dataset = dataset.batch(batch_size) dataset = dataset.prefetch() dataset = dataset.cache()
Si bien este ejemplo se explica por sí mismo, a veces siento que un comentario contextual podría mejorar la legibilidad del código.
En general, se desaconsejan los caracteres de continuación de línea. En su lugar, utilice paréntesis:
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() )
Por la misma razón, no puede tener espacios en blanco después de la barra invertida. Simplifica el análisis, ya que simplemente puede eliminar cualquier par de barra invertida-nueva línea antes de realizar más análisis. Si hubo espacios o comentarios después de la barra invertida, no hay una secuencia de barra invertida-nueva línea para eliminar.