跳到内容

for-loop-set-mutations (FURB142)

派生自 refurb 代码检查工具。

修复总是可用的。

此规则不稳定且处于预览状态。使用需要 --preview 标志。

作用

检查代码是否通过使用 for 循环对每个元素分别调用 .add().discard() 来更新集合的内容。

为什么这不好?

当向集合添加或从中删除一批元素时,使用单个方法调用而不是逐个添加或删除元素更为惯用。

示例

s = set()

for x in (1, 2, 3):
    s.add(x)

for x in (1, 2, 3):
    s.discard(x)

建议改为

s = set()

s.update((1, 2, 3))
s.difference_update((1, 2, 3))

修复安全性

如果应用修复会删除任何注释,则该修复将被标记为不安全。 否则,它将被标记为安全。

参考