non-pep604-isinstance (UP038)
源自 pyupgrade linter。
警告:此规则已弃用,将在未来的版本中删除。
修复总是可用的。
弃用
此规则已被弃用,因为在 isinstance 和 issubclass 调用中使用 PEP 604 语法不是推荐的做法,并且它错误地暗示了其他类型语法(如 PEP 695)会被 isinstance 和 issubclass 支持。使用 PEP 604 语法也稍慢一些。
作用
检查 isinstance 和 issubclass 的使用,它们接受类型的元组进行比较。
为什么这不好?
自从 Python 3.10 以来,可以将 | 分隔的类型联合传递给 isinstance 和 issubclass,这与 PEP 604 中引入的联合运算符一致。
请注意,这会导致代码速度变慢。 如果 isinstance 或 issubclass 检查的性能是一个问题,例如在热循环中,请忽略此规则。
示例
建议改为