跳到内容

verbose-decimal-constructor (FURB157)

派生自 refurb 代码检查工具。

修复总是可用的。

作用

检查 Decimal 构造函数中不必要的字符串字面量或浮点数转换。

为什么这不好?

Decimal 构造函数接受各种参数,包括整数、浮点数和字符串。但是,将整数文字传递给 Decimal 时,不需要将它们转换为字符串。

类似地,Decimal 接受 inf-infnan 作为字符串字面量,因此在将这些值传递给 Decimal 构造函数时,无需将它们包装在 float 调用中。

对于 Decimal 构造函数,优先使用更简洁的参数传递形式,因为它更具可读性和符合习惯用法。

请注意,此规则不会标记带引号的浮点数文字,例如 Decimal("0.1"),它将生成比未带引号的 Decimal(0.1) 更精确的 Decimal 值。

示例

Decimal("0")
Decimal(float("Infinity"))

建议改为

Decimal(0)
Decimal("Infinity")

参考