multiple-with-statements (SIM117)
源自 flake8-simplify 代码检查器。
有时提供修复。
作用
检查多个连续上下文管理器的不必要嵌套。
为什么这不好?
在 Python 3 中,单个 with
代码块可以包含多个上下文管理器。
将多个上下文管理器合并到单个 with
语句中,可以最大限度地减少代码的缩进深度,使其更具可读性。
以下上下文管理器在用作独立语句时会被豁免
anyio
.{CancelScope
,fail_after
,move_on_after
}asyncio
.{timeout
,timeout_at
}trio
.{fail_after
,fail_at
,move_on_after
,move_on_at
}
示例
建议改为
修复安全性
此修复被标记为始终不安全,除非启用了 预览 模式,在这种情况下它始终被标记为安全。 请注意,如果该修复会删除注释(无论在哪种情况下),则该修复不可用。