用空格还是制表符缩进有什么好争的?
2010 11 30 09:37 PM 8261次查看
就我本人而言,我是习惯tab的,原因很简单,几乎所有的程序语言都推荐使用tab来缩进。
单独使用Python还没什么,但如果混合其他语言的话,就会觉得别扭了。
举个最简单的例子:在使用Python模板时,Python、HTML和JavaScript代码是混合在一起的,后者我都是用tab来缩进,我不可能单独在写其中的Python代码时敲几下空格。
你也许会说,那你把HTML和JavaScript也改成空格缩进不就行了?
我想,服务器端的源码占用的空间还好说,客户端的源码使用空格的话,在传输时间上比使用制表符的慢。
正因如此,即使我用空格,也只会用2个,这也和Python的4个空格要求不符。
话又说回来,Python为什么非要求4个空格不可呢?
答案是根本没这个要求,Python的解释器很智能的,甚至你混用空格和制表符它都能认得。
不过无风不起浪,这个传言其实是来自PEP 8,其原文是:
Indentation很显然,它只阐述了这几点:
Use 4 spaces per indentation level.
For really old code that you don't want to mess up, you can continue to
use 8-space tabs.
Tabs or Spaces?
Never mix tabs and spaces.
The most popular way of indenting Python is with spaces only. The
second-most popular way is with tabs only. Code indented with a mixture
of tabs and spaces should be converted to using spaces exclusively. When
invoking the Python command line interpreter with the -t option, it issues
warnings about code that illegally mixes tabs and spaces. When using -tt
these warnings become errors. These options are highly recommended!
For new projects, spaces-only are strongly recommended over tabs. Most
editors have features that make this easy to do.
- 不混合使用空格和制表符。
- 使用4个空格来缩进是最流行的,也是强烈推荐的。
- 使用制表符来缩进是第二流行的。
也就是说,你爱用什么都行,只要不混合使用即可。
但在写程序时,不可避免地会用到其他的库。这些库一般都遵循使用空格的要求,于是为了不混用空格和制表符,还是使用空格更好。
不过考虑到这些库一般不需要自己去更改,由于程序员并不编辑这些文件,所以也没差。
可以说使用空格只有这一个优点,而且你还不能完全依赖这个优点(例如GAE SDK是2个空格来缩进),而除此之外就一无是处了。
它用起来麻烦,需要你有个现代的编辑器,要是在网页上发帖的话,敲空格都能累死你。
撤销1行的缩进时,还得使用shift+tab的组合键,不然就得敲4下backspace;可tab缩进就只需要敲一下而已。
编程不就讲究个流畅性么?灵感来了你还要求别人多敲几下键盘,别人恨不得把键盘都砸了。
而且我认为使用空格来缩进的都是些过时的习惯。那时候人们还喜欢把代码打印出来,于是为了一致性和美观,就要求4个空格缩进、79个字符一行之类的。
其实现在谁还没事去打印代码啊,纸那么贵,打印出来多不环保啊。
而且排版早就不像以前了,制表符来设置缩进才更符合web风格。你看哪个好的web设计师会用 和<br/>来设置缩进和行间距,不都是用CSS来弄么?这样我要调整缩进时,只要更改CSS即可,不需要一行一行去改动HTML代码。而Python代码也一样,我用tab缩进的话,想显示成几个空格都行,但空格缩进就没有这种便利了。
再说现在显示器都很大了,79个字符连半个屏幕都填不满,难道都歪着脑袋编程么?
所以在我看来,使用tab才是最合适的,毫无争议。而如果项目上有强制要求,那更加无需争议。
向下滚动可载入更多评论,或者点这里禁止自动加载。