Python: 为什么使用4个空格缩进?
13 个回答
67
我觉得真正的问题是,为什么要用空格而不是制表符。
制表符明显更好:
- 使用制表符几乎不可能出现不一致的缩进(我见过一些代码,通常是4个空格缩进,但有些地方却偏离了一个空格,简单看一下很难判断是7个还是8个空格……如果用制表符就不会出现这种情况,除非你把制表符的宽度设置成1个空格)。
- 制表符是一个逻辑上的语义表示,用来表示缩进,它允许你(和其他开发者)选择显示多少个“空格”(或者说列),而不会影响到别人的设置。
- 如果你手边只有“记事本”(或者其他简单的编辑器),那么用制表符输入的按键更少。
- 添加和删除制表符是一个对称的操作。大多数集成开发环境(IDE)在你按下制表键时会自动插入4个空格,但通常在你按下退格键时只会删除1个空格(虽然可以用shift-tab来取消缩进,但那是两个键的组合),或者你可以用鼠标点击缩进中间删除一个字符。
- 制表符只占用1个字节,而空格占用4个字节(如果代码行数很多,这样可以节省几KB的空间!:p)
- 你少了一件需要达成一致的事情,因为如果你决定用空格,那么讨论又要开始,大家要选择用多少个空格(虽然大家的共识似乎是4个)。
- 最后:你觉得自己比理查德·亨德里克斯更好吗?
空格的优点:
- Guido喜欢用空格。
- 在这里你不能轻易输入制表符,它会转移焦点(不过你可以粘贴一个)。
90
我喜欢用四个空格来缩进函数内部的代码,因为在写函数时,"def"后面加一个空格正好是四个字符。
def·foo():
····pass
156
大家都用4个空格。这是我接受使用4个空格的唯一原因。在我心里,我还是想用制表符(每次缩进一个字符,这样挺合理的,对吧?把缩进和其他空白分开)。我不在乎制表符可以显示成不同的宽度,这对语法没有影响。最糟糕的情况就是有些注释对不齐,真可怕!不过我已经接受了,因为整个Python社区都在用4个空格,所以我也用4个空格。这样,我就可以把别人写的代码片段拼凑在一起,所有的代码都能正常工作。