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.
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.
dataset = tf.data.Dataset.from_tensor_slices(data)\ .interleave(special_sauce_fn)\ .shuffle(shuffle_buffer_size)\ .batch(batch_size)\ .prefetch()\ .cache()
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.
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() )
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.