其他人都使用4个空格。这是我接受的唯一使用4个空格的原因。在我的心里,我仍然想使用制表符(每缩进一个制表符,有意义吧,它与其他空格分开缩进)。我不在乎制表符可以以不同的宽度显示,因为那没有语法上的差别。最糟糕的情况是一些注释可能不对齐。可怕!)但我已经接受了,因为Python社区作为一个整体使用4个空格,所以我也使用4个空格。这样,我就可以从其他人编写的代码片段中组装代码,并且一切正常。
'tab_size'=4
来设置 Python 的自定义偏好非常有用,对于其他语言(如JavaScript等),将默认的 'tab_size'=2
。 - Antony我喜欢使用四个空格缩进函数的内部代码,因为def加一个空格刚好是四个字符。
def·foo():
····pass
if
语句内部的代码,因为if
加上一个空格正好是三个字符。 - Alexander Shukaev我认为真正的问题是为什么用空格而不是制表符。
制表符明显更好:
使用空格的优点:
"更好的"缩进并不存在。这是一个宗教性的圣战话题。四个空格的缩进是不错的选择,因为它足以清晰地表明缩进,但不会让整个屏幕几乎都是空白,使你必须水平滚动才能阅读一半的代码。
此外,它还有一个优点,就是在历史上定义的“制表符”方面相当于“半个制表符”。
除此之外,使用任何你的团队喜欢的方式。就像巧克力和香草一样。
切换的简单方法是使用支持制表符和空格制表符的编辑器。将所有前导空格制表符转换为制表符,将制表符大小设置为四,然后将前导制表符转换回空格制表符。
使用Python脚本也很容易实现。只需计算所有前导空格的数量,然后将同样数量的空格添加到行开头并重新写出即可。
PEP并不是你的上司。如果你已经一直使用2个空格进行缩进,那么没有理由改变所有代码以符合它。如果你真的认为它非常重要,可以从现在开始遵循它,但坦白说,我并不认为如此。最好根据使你(和同事)在阅读和编写方面感到最舒适的习惯去进行。
:retab
命令)。if code80symbolslong and somelongvariablegoeshere and somelongerthan80symbols \
and someotherstatementhere:
# some code inside if block
pass
if code80symbolslong and somelongvariablegoeshere and somelongerthan80symbols \
and someotherstatementhere:
# some code inside if block
pass
如果你是唯一在源文件上工作的程序员,并且没有强制执行特定风格的编码标准,那么可以使用你熟悉的任何风格。就我个人而言(也符合我们的编码标准),我使用硬制表符,这样查看代码的人可以使用自己的偏好。
要进行更改,只需要将每行开头的空格更改为两倍大小即可。有许多方法可以实现这一点;在 Vim 文本编辑器中,我可以想到两种方法:首先:
:%s/^\(\s\{2}\)\+/\=repeat(' ', len(submatch(0))*2)
这是一个简单的正则表达式,用于查找行首一个或多个空格对,并将其替换为两倍数量的空格。可以通过打开vim并执行以下命令来扩展到所有文件:
vim *.py
(或相应的标签),后跟(未经测试):
:argdo %s/^\(\s\{2}\)\+/\=repeat(' ', len(submatch(0))*2)/ | w
或者:
" Switch to hard tabs:
:set noexpandtab
" Set the tab stop to the current setting
:set tabstop=2
" Change all spaces to tabs based on tabstop
:retab!
" Change the tab stop to the new setting
:set tabstop=4
" Go back to soft tabs
:set expandtab
" Replace all the tabs in the current file to spaces
:retab
使用4个空格更容易在视觉上识别长嵌套的代码块,有助于调试节省时间。