如何使用 pylint 或 mypy 捕获潜在未定义的变量?

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

if time.time() > 42:
    x = 1

print(x)

我的 IDE (PyCharm) 警告我

x
可能未定义:

但是

pylint
mypy
什么也没说。有没有办法让他们中的一个也抱怨这种情况?

python python-3.x mypy lint pylint
1个回答
0
投票

所以

mypy
似乎不会报告潜在的未定义变量,但会产生

C0103: Constant name "x" doesn't conform to UPPER_CASE naming style (invalid-name)

虽然没有必要,但总比没有好。另请注意,

mypy
实际上并不是您正在寻找的 linter,而是类型检查器。

接下来,是

pylint
,但它保持沉默,尽管存在潜在相关的检查器
E0602 (UnboundLocalError)
,而且我以某种方式未能改变代码上的这种行为。

深入挖掘,我在 mypy 的存储库中发现了这张旧票未检测到 UnboundLocalError,尽管年龄很大,但读起来很有趣。我检查了那里提到的工具,并

pyright
发出了警报:

test.py:6:7 - error: "x" is possibly unbound (reportPossiblyUnboundVariable)
© www.soinside.com 2019 - 2024. All rights reserved.