隐藏的空白最佳实践

时间:2012-07-25 16:51:08

标签: coding-style whitespace

我认为大多数人都认为尾随空白不是好习惯。许多编辑会为您显示或自动删除它。

将此Python函数视为一个简单示例:

Whitespace Example Screenshot

第11行和第13行的额外空格是错误的。我想知道的是第10行。如果控制块内部没有改变缩进的空行是否有前导空格?

我使用的大多数编辑器都会将光标保持在前一行的缩进级别,因此在没有前导空格的情况下创建一个空白行需要一些额外的格式。什么是最佳做法?第10行是否应该有前导空格?

4 个答案:

答案 0 :(得分:5)

在代码执行方面,它完全没有区别;我在python中看到的最常见的练习就是带有空格的练习,但我认为没有人能够合理地说一个人客观上比另一个更好。

答案 1 :(得分:3)

我会尝试回答你的问题,坚持你的Python示例,引用他们的风格指南。

来自PEP-8

  

类中的方法定义由一个空行分隔。

来自Wikipedia (blank line)

  

空白行通常是指包含零个字符的行(不包括任何行尾字符);虽然它也可以引用任何不包含任何可见字符的行(仅由空格组成)。

如果你相信维基百科的定义,你可能会问为什么零字符是首选。

对于一个更简单的方法,即使在编辑器中打开了autoindent,你也只是在没有充分理由的情况下用额外的字节填充你的文件。

其次,零字符空行的正则表达式也更简单,'^ $'通常与'^ \ s * $'之类的东西相比。

正如其他答案所指出的那样,放入空格并没有区别。没有充分理由这样做,我会说最好的做法就是把它留下来并保持简单。你能想象一个零字符行被处理的方式与具有一些空格的行不同吗?我不想用那种语言编程。放入空白对我来说似乎是巴洛克式的。

答案 2 :(得分:2)

正如@PinkElephantsOnParade所写,它对执行没有任何影响。因此,这完全取决于个人的审美偏好。

我自己设置我的编辑器显示尾随空格,因为我认为尾随空格是一个坏主意。因此,你的第10行会突出显示,并一直盯着我。 没有人想要那个,所以我认为第10行不应该包含空格。 (巧合的是,我的编辑器emacs会自动处理这个问题。)

答案 3 :(得分:1)

对于他自己,但有一种方式来看待它:代码风格是关于人类的可读性。因此,如果将行的长度延伸超过某个预先存在的(自我强加的)限制(例如,80个字符限制),则尾随空格只是一个问题。

另一方面,如果你一直在你的编辑器中显示空白区域,这对你来说很重要,我个人会把它保留在那里,因为(对某些人来说,至少)更有效率的白色 - 空间存在;如果您决定在某一点在该行添加代码,则不必添加额外的空格。