跳到内容

check-and-remove-from-set (FURB132)

添加于 0.12.0 · 相关问题 · 查看源码

派生自 refurb 代码检查工具。

修复总是可用的。

作用

检查是否可以使用 set.discard 替换 set.remove

为什么这不好?

如果希望在元素存在时将其从集合中移除,使用 discard 会更加简洁且符合惯用法。

已知问题

由于类型推断的局限性,此规则容易产生漏报(false negatives),因为它仅检测那些以字面量形式实例化或带有类型注解的集合。

示例

nums = {123, 456}

if 123 in nums:
    nums.remove(123)

建议改为

nums = {123, 456}

nums.discard(123)

参考