我受到这个one的攻击(在方法调用的参数中使用len
),然后定义一个列表,并在其上执行len,产生:
def fun(len):
a = []
...
len(a)
>>>TypeError: 'int' object is not callable
是否有针对VS Code IDE的Python3 lint,您可以配置为报告变量不是保留字/内置函数?或者一般掩盖/覆盖。 我没想到那种行为。
反思我知道Python的一个特性是你可以将函数作为参数传递,因此len
和len()
的双重语法。但它确实让我感到意外!
Lint似乎报告了未使用的变量之类的东西。
似乎不一致,它也不提供开箱即用的名称掩码报告。
如果可行,有人可以建议如何在VS Code中进行设置吗?
环境:
答案 0 :(得分:2)
继@Samuel Dion-Girardeau的回答之后
redefined-builtin
。python.linting.pylintUseMinimalCheckers": true
"python.linting.pylintArgs": []
2.1相当于此See here
--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
中
如果在pylintArgs中指定值或使用Pylint配置 文件然后pylintUseMinimalCheckers隐式设置为false。
redefined-builtin
到--enable
的{{1}}部分
所以我们最终得到:"python.linting.pylintArgs": []
python.linting.pylintUseMinimalCheckers": false
(我将DEFAULT USER SETTINGS复制并粘贴到USER_SETTINGS中)。
然后在那里应用更改,确保在键/值对之间添加逗号。
脚注: 我最近也在亚马逊实例上设置了它。
我忘了你也需要运行"python.linting.pylintArgs": [ "--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,redefined-builtin"]
请参阅here。
答案 1 :(得分:1)
您可以使用Pylint为您核对。
它有一个专门的警告代码W0622
,用于"重新定义内置" (见list of all error codes)
要在Visual Studio Code中进行设置,您可以按照官方指南进行操作:Linting Python in VS Code