如何在Flake8规范下合规拆分多行for语句?
合规拆分超长for循环的写法
针对你的问题,这里提供几种符合Flake8规则的拆分方式,无需禁用规则或添加# noqa:
写法1:用括号包裹循环表达式
通过将in后的表达式放入括号内,实现自然续行,完全符合PEP8缩进规范:
for i, (expected, actual) in ( enumerate(zip_longest(self.__lines, lines)) ): ...
写法2:拆分enumerate的参数行
把enumerate的参数单独拆到下一行,缩进至与enumerate的起始位置对齐,避免行长度超标:
for i, (expected, actual) in enumerate( zip_longest(self.__lines, lines) ): ...
写法3:续行缩进大于逻辑块缩进
保持反斜杠续行,但将续行的缩进设置得比循环体的缩进更深(比如多4个空格),规避E125错误:
for i, (expected, actual) \ in enumerate(zip_longest(self.__lines, lines)): ...
以上三种写法都能满足Flake8的行长度要求,且不会触发E122或E125规则。
内容的提问来源于stack exchange,提问作者Maddy Guthridge
相关产品推荐
相关产品推荐

