禁止Python可变参数

0 投票
1 回答
29 浏览
提问于 2025-04-14 17:33

有没有什么工具可以检查代码,防止在函数中使用可变参数(也就是 *args 和 **kwargs),而不需要自己写插件呢?

1 个回答

1

不,虽然没有证据并不代表没有事实。我之前做过一次比较全面的搜索,但没有找到相关的信息。ruffs linter 从大多数主要的代码检查工具(比如 pflakes、flake8、black、isort)中引入了规则,但它并没有针对这个问题的规则。

我知道这种情况有多让人头疼……我见过一些出于好意但没有受过训练的程序员写的代码,他们在每个函数的定义中都使用了 **kwargs,这样就不用去修改函数的参数定义,但结果是代码变得难以理解和检查。

不幸的是,确实有很多合理且不可避免的使用场景,所以代码检查工具并没有对这个问题给出一个绝对的“不能用”。

在我们的情况下,我们通过先进行一系列的教育和培训,然后使用 mypy 加上 -no-untyped-defs 来强制要求函数定义必须有类型。这种对 **kwargs 和 *args 的类型检查难度,足以成为推动我们改变的“动力”。

撰写回答