Python代码提示Expected an indented block缩进错误如何修复
报错原因
Python为强制缩进语法,当前代码缩进层级完全混乱,函数、条件判断下属的代码块没有按规则缩进,还错误嵌套了不会被触发的内部函数,因此触发Expected an indented block报错。
现存代码问题
- 事件处理函数
me_handler仅将client = event.client放在函数缩进内,后续的文本匹配逻辑跑到了函数外层,无法获取函数内部的event对象 if关键词判断块下错误嵌套了多余的main异步函数定义,没有直接编写转发逻辑- 所有属于函数、条件分支内部的代码缩进不规范,Python解释器无法识别对应的从属代码块
修复后代码
@events.register(events.NewMessage(chats='AAAAA')) async def me_handler(event): # 函数内逻辑统一使用4空格缩进(Python官方标准缩进规范) client = event.client # 关键词判断逻辑放在事件处理函数内部 if 'AAAAAAAA' in event.raw_text: # 匹配到指定内容后直接执行转发,无需额外嵌套无用函数 await event.forward_to('AAAAA')
编写规范提醒
- Python代码每一级从属逻辑统一使用4个空格缩进,不要混用空格和Tab制表符,不要随意调整缩进层级
- 事件注册对应的处理函数,所有业务逻辑都要放在函数的缩进块内,不要写到函数外层
- 不要在事件处理函数内部额外嵌套定义新的异步函数,嵌套定义的函数不会被自动调用,对应逻辑永远不会执行
内容的提问来源于stack exchange,提问作者Guillermo Marquez Fuentes
相关产品推荐
相关产品推荐

