【问题标题】:Tab Error in PythonPython中的选项卡错误
【发布时间】:2015-02-04 15:48:15
【问题描述】:

以下python代码抛出此错误消息,我不知道为什么,我的选项卡似乎在行:

File "test.py", line 12
    pass
       ^ TabError: inconsistent use of tabs and spaces in indentation

我的代码:

class eightPuzzle(StateSpace):
    StateSpace.n = 0

    def __init__(self, action, gval, state, parent = None):
        StateSpace.__init__(self, action, gval, parent)
        self.state = state

    def successors(self) :
        pass

【问题讨论】:

  • 您是否在一行使用制表符,另一行使用空格?您可以将编辑器配置为在制表符时始终使用 4 个空格以保持一致。
  • 请使用代码块中的类声明格式化您的代码。
  • 我敢打赌,你没有在类声明下缩进你的实例方法。
  • 我认为最简单的解决方案是:不要使用标签。

标签: python python-3.x indentation


【解决方案1】:

根据PEP8 styleguide,您不能混合制表符和空格:

空格是首选的缩进方法。

制表符仅用于与已经缩进制表符的代码保持一致。

Python 3 不允许混合使用制表符和空格来缩进。

混合使用制表符和空格缩进的 Python 2 代码应转换为仅使用空格。

当使用 -t 选项调用 Python 2 命令行解释器时,它会发出有关非法混合制表符和空格的代码的警告。使用 -tt 时,这些警告会变成错误。强烈推荐这些选项!

【讨论】:

    【解决方案2】:

    使用 Visual Studio 2019

    我使用的是制表符,但编辑器插入了空格,这会导致错误。

    为避免混淆空格和制表符,请设置您的偏好

    转到编辑->高级->设置前导空格->制表符(或空格)

    将其设置为选项卡后,我的选项卡不再显示为空格,此后它工作正常

    【讨论】:

      【解决方案3】:

      在文本编辑器中打开您的代码,突出显示所有代码 (ctr+a),然后转到格式并选择“Tabify region”或“Untabify region”。它只会使所有缩进具有相同的格式。

      【讨论】:

      • 我的文本编辑器没有格式菜单!你怎么知道所有编辑器的缩进命令都会使制表符保持一致?
      • 我相信所有的代码编辑器都有这样的功能。它可能被称为“reindent”、“auto indent”或类似的名称。
      • 我使用了 Leafpad 文本编辑器,这就是我能够修复错误的方法。它将使您的缩进成为所有制表符或所有空格
      【解决方案4】:

      不使用退格键也很重要(尤其是在 Leafpad 编辑器中)。如果你想减少缩进,只使用Alt_key + TAB

      这应该在您删除 Python 代码中的一行时完成。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-05-12
        • 1970-01-01
        • 2012-03-24
        • 1970-01-01
        • 1970-01-01
        • 2020-06-26
        • 2023-01-10
        相关资源
        最近更新 更多