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
检查的性能是一个问题,例如在热循环中,请忽略此规则。
示例
建议改为