当我进行Python编程时,我总是使用制表符进行缩进。 但后来我在SO上遇到了一个问题,有人指出大多数Python程序员使用空格而不是制表符来最小化编辑器到编辑器的错误。
这有什么不同? 还有其他原因可以使用空格而不是Python的制表符吗? 或者这不是真的吗?
我应该切换我的编辑器来插入空格而不是立即插入标签或继续像以前那样继续前进吗?
#1楼
因为PEP-8告诉我们使用空格。
#2楼
我最近发现了一篇题为“ Python:关于缩进的神话 ”的文章,讨论了这个问题和相关问题。 这篇文章有充分的理由在编写Python代码时建议使用空格,但肯定存在分歧的余地。
我相信大多数Python程序员都只使用空格。
#3楼
最“pythonic”的方法是每个缩进级别使用4个空格。 然而,Python解释器将识别空格或制表符。 唯一的问题是你必须永远不要混合空格和标签 ,选择其中一个。 也就是说,规范建议使用空格,大多数开发人员都使用空格,所以除非你有充分的理由不这样做,否则我会说空格。
#4楼
当您在文件中混合缩进时,会发生编辑器到编辑器错误。 这产生如下:一个代码块用4个空格缩进,然后一个缩进级别“in”,它用缩进键缩进。 现在做这个的异教徒(混合标签和空格)有它所以他的标签也是4个空格,所以他没有看到任何问题,Python没有看到任何问题。
现在我们的受害者来了,他的标签设置为8个空格。 现在,我们的受害者认为代码看起来全部被破坏,并通过删除一级缩进来 修复它 ,现在使代码看起来仍然是2级缩进,但实际上是一个级别 。 在这一点上,所有的地狱都破裂了。
这里的教训是,你永远不应该混合标签和空格。 如果您坚持这一点,那么无论您个人使用哪种代码,都可以轻松地将代码重新插入空格或制表符。 确保不混合制表符和空格的最佳方法是始终使用-tt
运行python
,这会在制表符和空格混合时产生错误。
对于制表符和空格,我个人使用制表符,使其与外观分开缩进 - 当使用制表符缩进代码时,更改代码的外观要比使用空格更容易。 我知道这与99%的Python程序员所做的相反,但这是我个人的偏好,并且在任何情况下很容易将选项卡式文件转换为间隔文件。 反过来并不总是正确的,因为你可能会意外地敲掉字符串中的4个空格等。
#5楼
你可以混合标签和空格......但是一个标签被认为是与8个空格相同的缩进,所以除非你的编辑器被设置为将标签视为8个空格,否则混合它们时会遇到麻烦。
来源:oschina
链接:https://my.oschina.net/u/3797416/blog/3189807