You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何触发IndentationError?缩进不匹配外部级别错误排查

解决Python的IndentationError缩进错误问题

嘿,这个缩进错误我之前踩过好几次坑,太常见了!咱们来一步步拆解原因和解决办法:

错误原因

Python是靠缩进区分代码块的语言,不像其他语言用大括号{}。当你碰到IndentationError: unindent does not match any outer indentation level这个错误时,本质就是代码里的缩进规则不统一——要么是混合用了制表符(Tab)和空格,要么是同一层级的代码缩进的空格数不一样,导致Python没法正确识别代码块的结构。

看你贴的代码,大概率是FileLogger类里的write_message方法、或者方法内部的with代码块缩进出现了混合空格/Tab,或者缩进数量不一致的情况。

解决办法

  1. 统一缩进规则:整个代码文件里要么全用空格(推荐4个空格,这是Python官方规范),要么全用Tab,绝对不能混着用。
  2. 检查并修正所有缩进:
    • 把代码里所有的Tab替换成4个空格(大多数编辑器都有“替换Tab为空格”的一键功能);
    • 确保每个代码块的缩进层级一致:比如类的方法要比类定义缩进一级,方法内部的代码(比如with语句)又要比方法定义再缩进一级。

修正后的示例代码

import time

class FileLogger:
    filename = "log.txt"
    
    def write_message(self, message):
        # Append message to log file.
        with open(self.filename, "a") as outfile:
            line = "{} {}\n".format(int(time.time()), message)
            outfile.write(line)

你对比一下,这个版本的缩进完全用4个空格,每个层级都对齐,就不会触发缩进错误啦。

内容的提问来源于stack exchange,提问作者Mark Davis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 04:08:47