禁止 Python 变量参数

问题描述 投票:0回答:1

是否存在任何 linting 工具能够禁止在函数中使用可变参数(*args、**kwargs),而无需编写插件?

python continuous-integration lint
1个回答
0
投票

不,虽然没有证据并不等于缺席的证据。我不久前对此进行了相当彻底的搜索,但一无所获。 ruffs linter 从大多数主要的 linter 中引入规则,(pflakes、flake8、black、isort)它没有规则。

我知道这很痛苦...我见过一些由未经训练的程序员善意编写的代码,这些代码

**kwargs
作为每个函数的签名,以避免必须更改其函数的签名,但最终你得到的代码是无法推理或类型检查。

不幸的是,它们有许多有效/不可避免的用例,而 linter 硬性的“不”还没有成为现实。

在我们的例子中,我们首先进行一系列教育/培训,然后使用 mypy-no-untyped-defs 来强制函数定义的类型化,从而解决了这个问题。 输入 **kwargs 和 *args 的难度足以“鼓励”巩固这一变化。

© www.soinside.com 2019 - 2024. All rights reserved.