如何在Python中lint(静态分析代码的)幻数?

2024-10-02 10:27:21 发布

您现在位置:Python中文网/ 问答频道 /正文

谷歌搜索“pylint magic numbers”没有返回任何有用的信息。有没有办法为magic numberslint Python代码?在

(我放了,但答案可以是任何Python linter中的。)


Tags: 答案代码信息lintermagicpylintnumbers办法
1条回答
网友
1楼 · 发布于 2024-10-02 10:27:21

最简单的方法是构建一个Python语言标记器,并挑选出所有的常量标记。在

我们的源代码搜索引擎通过语言标记器驱动的大型文件集中的语言标记进行搜索(它有大约40个这样的标记,包括Python2和3)。一种是通过声明对令牌序列的约束来形成查询,例如

 I=*abc* '('

意思是“查找包含字母‘abc’后跟left paren token的标识符”,并打印出找到的实例。[此类查询自动忽略空白和注释标记]

您需要的查询可以表述为:

^{pr2}$

这意味着,“查找值大于2的数字标记”假设0和1不符合魔术常量的条件。(IMHO他们和其他人一样神奇,但也有不同意的余地,我想举一个例子,这个例子并不完全是小事)。在

您可以使用lexer生成器(参见“Flex”)复制这个过程,在顶部添加一些自定义代码,过滤数字标记。在

相关问题 更多 >

    热门问题