为什么注释不能出现在换行符之后?

为什么 Python 不允许在续行“”字符后添加注释,这是技术要求还是文体要求?

根据文档(2.1.5):

以反斜杠结尾的行不能带有注释。

和(2.1.3):

除非调用隐式行连接规则,否则注释表示逻辑行的结束。语法会忽略注释。

PEP 8不鼓励行内注释,所以我可以看到这在风格上是如何“非pythonic”的。我还可以看到如果“”允许评论(解释器应该忽略所有后续标记还是只忽略评论?),它可能是如何模棱两可的,但我认为可以很容易地进行区​​分。

来自 Javascript 并习惯于流畅的界面风格,我更喜欢编写如下所示的链而不是重新分配:

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()

虽然这个例子是不言自明的,但有时我觉得上下文注释可以提高代码的可读性。

回答

通常,不鼓励使用换行符。相反,使用括号:

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()
)


回答

出于同样的原因,反斜杠后不能有空格。它简化了解析,因为它可以在进行更多解析之前简单地删除任何反斜杠-换行符对。如果反斜杠后有空格或注释,则无需删除反斜杠-换行符序列。


以上是为什么注释不能出现在换行符之后?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>