multiple-starts-ends-with (PIE810)
派生自 flake8-pie 代码检查工具。
修复总是可用的。
作用
检查对同一值的 startswith 或 endswith 调用,但具有不同的前缀或后缀。
为什么这不好?
startswith 和 endswith 方法分别接受前缀或后缀的元组。传递前缀或后缀的元组比多次调用该方法更有效率和可读性。
示例
建议改为
修复安全性
此规则的修复是不安全的,因为在某些情况下,它将无法确定现有 .startswith 或 .endswith 调用的参数是否为元组。例如,给定 msg.startswith(x) or msg.startswith(y),如果 x 或 y 是一个元组,并且语义模型无法将其检测为元组,则该规则将建议 msg.startswith((x, y)),这将在运行时出错。