import time
if time.time() > 42:
x = 1
print(x)
我的 IDE (PyCharm) 警告我
x
可能未定义:
但是
pylint
和mypy
什么也没说。有没有办法让他们中的一个也抱怨这种情况?
所以
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)