冗余对数底数 (FURB163)
派生自 refurb 代码检查工具。
有时提供修复。
作用
检查是否存在具有冗余底数的 math.log
调用。
为什么这不好?
math.log
的默认底数为 e
,因此显式指定它是冗余的。
与其将 2 或 10 作为底数传递,不如分别使用 math.log2
或 math.log10
,因为这些专用变体通常比 math.log
更准确。
示例
建议改为
修复安全性
当参数是星号表达式时,此修复被标记为不安全,因为这会更改调用语义并可能引发运行时错误。 如果调用中存在注释,它也是不安全的,因为它们将被删除。 此外,由于浮点舍入,math.log(x, base)
和 math.log2(x)
/ math.log10(x)
可能不同,因此进行此转换时修复也是不安全的。