在PEP8读到了关于代码缩进的指导建议:
Code lay-out
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.
在此之前我也仔细考虑过缩进应该使用哪个比较好——tab vs. white space.最终我觉得使用tab比较适合我,主要是基于以下几点考虑:
因此,我还是坚持使用tab字符作为行首缩进。
- 在行首的所有缩进都是用tab,在行内和行末只适用white space,这样无论代码使用哪一种IDE或是editor打开,无论设置的tab width是4或是8或是其他什么奇怪的数,每一行的缩进关系都可以正确的显示出来,差别只是宽度而已,不影响可读性。
- 我使用的是VIM,可以直接在plugin或是窗口内使用参数来控制tab的缩进字符数,通常在阅读xml、html或是jsp文件的时候个人喜好将tabstop设置为2,这样每行实际显示的内容可以更多一点,毕竟类似于xml格式的文件中嵌套个七八层的缩进还是很常见的,按照每行标配80个字符来算,如果一个tab缩进设置为4个字符,那么接近半行的空白严重影响了阅读代码的效率。
- 万一真的需要将所有的缩进替换为统一的字符,那么使用'\t'到' '的替换是很容易的,反之如果使用' '到'\t'的替换则很有可能将字符串内或是行末注释间的空白打乱。
因此,我还是坚持使用tab字符作为行首缩进。
评论