我认为大多数人都同意尾随空格不是好的做法。许多编辑器会为您显示或自动将其删除。
考虑这个 Python 函数作为一个简单的例子:
第 11 行和第 13 行的多余空格是错误的。我想知道的是第 10 行。不改变缩进的控制块内的空白行是否应该有前导空格?
我使用的大多数编辑器都会将光标保持在前一行的缩进级别,因此制作一个没有前导空格的空行需要一些额外的格式。最佳做法是什么?第 10 行是否应该有前导空格?
我认为大多数人都同意尾随空格不是好的做法。许多编辑器会为您显示或自动将其删除。
考虑这个 Python 函数作为一个简单的例子:
第 11 行和第 13 行的多余空格是错误的。我想知道的是第 10 行。不改变缩进的控制块内的空白行是否应该有前导空格?
我使用的大多数编辑器都会将光标保持在前一行的缩进级别,因此制作一个没有前导空格的空行需要一些额外的格式。最佳做法是什么?第 10 行是否应该有前导空格?
在代码执行方面,它绝对是零差异;我在 python 中看到的最多的做法是带有空格的做法,但我认为没有人可以真正合理地说一个在客观上比另一个更好。
我将尝试根据您的 Python 示例回答您的问题,并引用他们的样式指南。
来自PEP-8:
类中的方法定义由一个空行分隔。
来自维基百科(空白行):
空行通常是指包含零个字符的行(不包括任何行尾字符);尽管它也可以引用任何不包含任何可见字符(仅由空格组成)的行。
如果您相信 Wikipedia 的定义,您可能会问为什么首选零字符。
一方面它更简单,即使在您的编辑器中打开了自动缩进,您也只是无缘无故地用额外的字节填充文件。
其次,零字符空行的正则表达式也更简单,'^$'通常与'^\s*$'之类的东西相比。
正如其他答案所指出的那样,放入空格在执行方面没有任何区别。没有充分的理由这样做,我想说最好的做法是将它排除在外并保持简单。你能想象一个零字符行的处理方式与带有一些空格的行不同的情况吗?我讨厌用那种语言编程。放入空格对我来说似乎是巴洛克式的。
正如@PinkElephantsOnParade 所写,执行没有区别。因此,这完全是个人审美偏好的问题。
我自己将我的编辑器设置为显示尾随空格,因为我认为尾随空格是一个坏主意。因此,您的第 10 行将被突出显示并一直盯着我的脸。没有人想要那样,所以我认为第 10 行不应该包含空格。(巧合的是,我的编辑器 emacs 是如何自动处理这个问题的。)
每个人都有自己的看法,但看待它的一种方式是:代码风格是关于人类可读性的。因此,如果尾随空格将行的长度延伸到某个预先存在的(自我强加的)限制(例如 80 个字符限制),则它只是一个问题。
另一方面,如果您始终在编辑器中显示空白,这对您很重要,我个人会将其保留在那里,因为(至少对某些人来说)有空白会更有效;如果您决定在某个时候在该行添加代码,则不必添加额外的空格。