Python 3.x 变量名是否有Python(3)lint,例如';len';(内置功能/保留字等)
我为此感到刺痛(在方法调用的参数中使用Python 3.x 变量名是否有Python(3)lint,例如';len';(内置功能/保留字等),python-3.x,visual-studio-code,lint,Python 3.x,Visual Studio Code,Lint,我为此感到刺痛(在方法调用的参数中使用len),然后定义一个列表,并在其上执行len,得到: def fun(len): a = [] ... len(a) >>类型错误:“int”对象不可调用 VS代码IDE是否有Python3 lint,您可以将其配置为报告不是保留字/内置函数的变量?或一般的屏蔽/覆盖。 我没想到会有这种行为 经过反思,我知道Python的一个特性是可以将函数作为参数传递,因此使用了len和len()的双重语法。但这确实让我大吃一惊 Lint似乎会报告未使用的
len
),然后定义一个列表,并在其上执行len,得到:
def fun(len):
a = []
...
len(a)
>>类型错误:“int”对象不可调用
VS代码IDE是否有Python3 lint,您可以将其配置为报告不是保留字/内置函数的变量?或一般的屏蔽/覆盖。
我没想到会有这种行为
经过反思,我知道Python的一个特性是可以将函数作为参数传递,因此使用了len
和len()
的双重语法。但这确实让我大吃一惊
Lint似乎会报告未使用的变量之类的事情
这似乎不一致,因为它也没有提供开箱即用的名称掩码报告
如果这是可行的,有人可以建议如何在VS代码中设置它吗
环境:
- VS代码:版本1.23.1
- Python 3.6.5
- Python扩展2018.4.0
- Microsoft Windows Server 2012 RC2
W0622
,用于“重新定义内置”(请参阅)
要在Visual Studio代码中设置它,您可以按照官方指南进行操作:从@Samuel Dion Girardeau的
2.1
python.linting.pylintUseMinimalCheckers:true
2.2
“python.linting.pylintArgs”:[]
3.1
重新定义了内置的——启用部分的“python.linting.pylintArgs”:[]
因此,我们以:
3.2python.linting.pylinsuminimalcheckers:false
(由此推断该部分不是必需的…
3.3“python.linting.pylintArgs”:[“--disable=all”、“--enable=F、E、不可访问、重复键、不必要的分号、未分配全局变量、未使用变量、二进制运算异常、格式错误的字符串、字符串中的异常反斜杠、错误的打开模式、重新定义的内置”]
脚注: 我最近也在Amazon实例上设置了这个 我忘了您还需要运行
pip安装pylint
请参见。有人能解释一下为什么有人建议关闭此功能吗?
len
是一个函数的名称,您使用的参数是len
现在将是您输入fun的参数类型,正如我们看到的是整数,使用保留名称作为变量名是一种糟糕的编程实践。对。我知道现在。。。但是我想问的是,是否有一个lint检查器,它会在你作为Python新手不知道这些事情的情况下标记出来。当然,我知道这个函数。但是当我声明变量时,我并没有期望Python会默默地覆盖它,我期望一些IDE反馈警告。因为它不是一个真正的保留字,它是一个函数的名称。这是值得做的。发现我无意中也使用了“id”作为变量。似乎VSCode也试图给你一个视觉线索,当文本是函数时(比如内置),它会使文本变黄。-从未将二和二放在一起。啊!我还有一个名为globals的模块,我也对它进行了重命名和重构。W0622绝对是一个有用的。但愿这是一个默认。使用Python学习绳索时非常有用。
--disable=all --enable=F,E,unreachable,duplicate-key,unnecessary-semicolon,global-variable-not-assigned,unused-variable,binary-op-exception,bad-format-string,anomalous-backslash-in-string,bad-open-mode