内置 round() 的替代方案是什么?

What is the alternative to built-in round()?

Pylint 抱怨 round 内置引用 但有什么选择?

answers I've seen thus far 只是为了让 Pylint 在内置函数方面安静下来。一定有其他方法可以调用 round(),也许是在标准导入库中?使用内置函数是否存在潜在问题?

我搜索这些答案只找到了几十个关于使用内置函数的教程。

用法与 round() 无关。这会触发警告:

n = 0.05
n = round(n)

确切的警告只出现在 VS Code 中,它是:

{
    "resource": "/C:/Users/neil.obremski/project/file.py",
    "owner": "python",
    "code": "round-builtin",
    "severity": 4,
    "message": "round built-in referenced",
    "source": "pylint",
    "startLineNumber": 434,
    "startColumn": 9,
    "endLineNumber": 434,
    "endColumn": 9
}

UPDATE:当在 Pylint 参数中设置 --enable=W 时会显示。它绝对显示 anyround() 函数的使用,包括指定第二个参数。

下面是 pylint file.py --enable=W 的 Pylint 输出:

file.py:435:18: W1633: round built-in referenced (round-builtin)

如果你只使用 python3.x 你可以忽略这个警告(默认情况下它是禁用的,你传递给 pylint 的一些选项正在启用这个)

该警告旨在成为 --py3k 套件检查的一部分,该套件会查找 python2 / python3 兼容性问题(如果您 python3-只是,这套检查可能 对您编写的代码非常有害

标记所有使用 round 的原因是舍入算法和返回的类型在 python 3 中发生了变化。在 python3 中,现在使用 [=13] 完成舍入=])

鉴于 和 Python2 几乎已过时的事实,最好 忽略 此警告。

Linters 甚至 PEP8 给出了文体建议。通常非常有用的建议。但有时有充分的理由忽略该建议。

我的建议是在所有项目中使用您喜欢的 linter。然后列出所有错误和警告(在您看来)是误报、过于迂腐或无用的。在 linter 的配置文件中全局禁用它们。

如果您不想全局禁用错误或警告,一些 linter 接受 # noqa 注释作为不检查特定行的通知。

如果您需要代码与 Python 2 和 3 兼容并且不能更改 lint 设置,请使用此导入 from builtins import round