repeated-equality-comparison (PLR1714)
源自 Pylint 代码检查工具。
修复总是可用的。
作用
检查可以重写为成员关系测试的重复相等比较。
此规则将尝试确定这些值是否可哈希,如果可哈希,则修复将使用 set
。 如果无法确定,修复将使用 tuple
并建议使用 set
。
为什么这不好?
要检查变量是否等于多个值中的一个,通常会编写一系列相等比较(例如,foo == "bar" or foo == "baz"
)。
相反,建议将值组合成一个集合,并使用 in
运算符来检查成员关系,这更高效且更简洁。 如果项目是可哈希的,请使用 set
以提高效率;否则,请使用 tuple
。
修复安全性
此规则始终是不安全的,因为文字集合和元组会急切地评估它们的成员,而 or
比较会被短路。 因此,在存在副作用的情况下,修复可能会改变行为。
示例
建议改为