autopep8格式化Python代码缩进不一致,手动修正后被还原如何解决?
问题原因
该缩进异常由配置中aggressive = 3导致:autopep8的aggressive等级越高,会启用越激进的格式化规则,3级会强制开启「悬挂缩进时不对嵌套结构额外缩进」的特殊规则,不符合常规PEP8的嵌套缩进要求。
解决方案
调整pyproject.toml中的autopep8配置,可从以下两种方案中任选其一:
方案1:降低aggressive等级(推荐)
将aggressive等级从3调整为2即可,aggressive=2是绝大多数项目的最优选择,既会自动修复大部分PEP8规范问题,也不会启用违反通用编码习惯的激进规则,调整后配置如下:
[tool.autopep8] max_line_length = 88 in-place = true recursive = true aggressive = 2
方案2:保留aggressive=3,新增忽略规则
如果业务场景必须使用3级aggressive规则,可添加ignore = E121配置关闭对应的缩进强制规则,配置如下:
[tool.autopep8] max_line_length = 88 in-place = true recursive = true aggressive = 3 ignore = E121
调整配置后重新运行autopep8,字典内部键值对就会相对于client_data={所在行额外缩进一级,符合常规PEP8缩进要求。
内容的提问来源于stack exchange,提问作者Reimus Klinsman
相关产品推荐
相关产品推荐

