【发布时间】:2022-11-12 11:18:36
【问题描述】:
我不断收到这些 TabErrors,这真的减慢了我的工作流程。我不知道如何让他们消失。我通过完全重新输入我的脚本让它们消失,然后我添加了一个新功能,突然一切又搞砸了。我没有改变缩进代码的方式。我没有添加额外的空格。我没有做任何不同的事情,但突然间我总是得到 TabErrors。我正在使用vscode。有什么东西可以用来正确格式化我的代码吗?我真的需要这个问题停止发生。
【问题讨论】:
-
错误信息很清楚;您正在混合空格和制表符。可能是由于您在 vscode 上的一些设置。
-
谢谢你。我没有意识到你不能混合使用空格和制表符,这是一个糟糕的规则。
-
为什么?选项卡的宽度不明确。如果一行有四个空格,下一行有一个制表符,python 怎么知道你的意思?如果您希望制表符等效为 2、4 或 8 个空格,则它的含义将完全不同,所有这些都是有效的解释和有效的语法,具体取决于上下文。空格在 python 中很重要,因此空格的一致性也很重要。
-
@Mike - 问题是标签没有标准宽度。名义上,它有 8 个空格,但对于 python,通常将其减少到 4 个空格。 Python 希望代码在视觉上对齐。如果混合使用制表符和空格缩进,python 必须开始猜测制表符缩进相对于空格的距离。这将在眼泪中结束。因此错误。从 Python 上讲,我们很久以前就放弃了标签。