repeated-isinstance-calls (PLR1701)
源自 Pylint 代码检查工具。
警告:此规则已被移除,其文档仅供历史参考。
修复总是可用的。
已移除
此规则与 SIM101 相同,应改用 SIM101。
作用
检查对同一对象重复调用 isinstance
的情况。
为什么这不好?
可以合并对同一对象重复进行的 isinstance
调用为单个调用。
修复安全性
此规则的修复在 Python 3.10 及更高版本中被标记为不安全,因为如果任何操作数本身是元组,则使用二元运算符 (|
) 组合多个 isinstance
调用将在运行时失败。
例如,给定 TYPES = (dict, list)
,则 isinstance(None, TYPES | set | float)
将在运行时引发 TypeError
,而 isinstance(None, set | float)
则不会。
示例
建议改为
或者,对于 Python 3.10 及更高版本