【问题标题】:Why does Python see a tab as 8 spaces?为什么 Python 将制表符视为 8 个空格?
【发布时间】:2014-06-18 09:26:25
【问题描述】:

使用 4 个空格的制表符宽度已成为编程的主要选择。那么为什么 Python 不将制表符视为 4 个空格而不是 8 个呢?

此设计决策是否有(技术、历史或其他)原因?感觉这样可以让开发人员免于为不一致的缩进而苦苦挣扎。

【问题讨论】:

  • 这就是为什么你不应该混合制表符和空格。你不需要知道这一点。
  • 旧的“tab = 8 个空格”来自机械打字机的世界。当您按下 TAB 键时,它们实际上是“硬连线”在每 8 个位置停止。然后是可变制表位(更现代的机器 - 从大约 1950 年代开始......)。但旧值显然停留在某些地方。见superuser.com/a/355868/196531
  • @SLaks 是的,我们不应该将两者混合使用,因为 Python 标准将制表符视为非常多的空格。
  • PEP8 建议您使用空格而不是制表符应该可以使开发人员免于为不一致的缩进而苦苦挣扎;-)。如果您在编写代码时遇到关于制表符/空格的问题,我会总是使用python -t,甚至可能使用python -tt
  • @Floris 哈哈,我其实是从这个问题来的。 :-) 认为大多数程序员如何看待选项卡与 Python 如何解释它们之间的区别是根本问题。

标签: python tabs indentation


【解决方案1】:

因为 Linux 控制台中的默认选项卡大小为 8 个空格,因此 Linux 中的大多数 CLI 文本编辑器也默认为 8 个空格。大多数也是可配置的,但多年来一直是默认设置。

一些older (C) code 使用混合缩进来伪造一个 4 空格制表符 - 1 个缩进 == 4 个空格,2 个缩进 == 1 个制表符,3 个缩进 == 1 个制表符 + 4 个空格,等等......这太糟糕了.不确定是为了使代码更易于阅读而故意这样做,还是某些编辑器自动这样做以模拟 4 个空格制表符。我所知道的是我正在使用 pico,它是一个 PITA 与它们一起工作,尤其是当你需要缩进/缩进整个块时。 :)

【讨论】:

    猜你喜欢
    • 2014-05-30
    • 1970-01-01
    • 1970-01-01
    • 2013-12-12
    • 2021-03-11
    • 1970-01-01
    • 2020-01-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多