是否有 Python (3) 变量名称 lint,例如 'len'(内置 functions/reserved 词等)
Is there a Python (3) lint for variable names such as 'len' (built-in functions/reserved words etc)
我被这个 one 吓到了(在方法调用的参数中使用 len
),然后定义一个列表,并对其执行 len,得到:
def fun(len):
a = []
...
len(a)
>>>TypeError: 'int' object is not callable
是否有用于 VS Code IDE 的 Python3 lint,您可以将其配置为报告未保留的变量 words/built-in 函数?或者一般来说 masking/overwriting。
我没想到会有这种行为。
经过反思,我知道 Python 的一个特性是您可以将函数作为参数传递,因此 len
和 len()
具有双重语法。但这确实让我感到惊讶!
Lint 似乎报告未使用的变量之类的东西。
似乎不一致,它也没有提供开箱即用的名称掩码报告。
如果可行,有人可以建议如何在 VS Code 中进行设置吗?
环境:
- VS 代码:版本 1.23.1
- Python 3.6.5
- Python 扩展 2018.4.0
- 微软Windows服务器 2012 RC2。
您可以使用 Pylint 为您检查一下。
它有一个专门的警告代码,W0622
,用于“重新定义内置”(参见 list of all error codes)
在Visual Studio代码中设置,可以参考官方指导:Linting Python in VS Code
继@Samuel Dion-Girardeau
的之后
- VS Code 似乎没有直接使用 these codes。
相反,它使用更具描述性的键 here 定义 W0622。
redefined-builtin
在这种情况下。
- 在我的 VS Code 设置中(文件>首选项>设置),我看到:
2.1 python.linting.pylintUseMinimalCheckers": true
2.2 "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
If you specify a value in pylintArgs or use a Pylint configuration
file then pylintUseMinimalCheckers is implicitly set to false.
- 因此我需要追加:
3.1 redefined-builtin
到"python.linting.pylintArgs": []
的--enable
部分
所以我们最终得到:
3.2 python.linting.pylintUseMinimalCheckers": false
(推断这部分不需要...)
3.3 "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"]
(我从 DEFAULT USER SETTINGS 复制并粘贴到 USER_SETTINGS)。
然后在那里应用更改,确保在 key/value 对之间添加一个逗号。
脚注:
我最近也在亚马逊实例上进行了设置。
我忘了你也需要 运行 pip install pylint
参见 。
我被这个 one 吓到了(在方法调用的参数中使用 len
),然后定义一个列表,并对其执行 len,得到:
def fun(len):
a = []
...
len(a)
>>>TypeError: 'int' object is not callable
是否有用于 VS Code IDE 的 Python3 lint,您可以将其配置为报告未保留的变量 words/built-in 函数?或者一般来说 masking/overwriting。 我没想到会有这种行为。
经过反思,我知道 Python 的一个特性是您可以将函数作为参数传递,因此 len
和 len()
具有双重语法。但这确实让我感到惊讶!
Lint 似乎报告未使用的变量之类的东西。
似乎不一致,它也没有提供开箱即用的名称掩码报告。
如果可行,有人可以建议如何在 VS Code 中进行设置吗?
环境:
- VS 代码:版本 1.23.1
- Python 3.6.5
- Python 扩展 2018.4.0
- 微软Windows服务器 2012 RC2。
您可以使用 Pylint 为您检查一下。
它有一个专门的警告代码,W0622
,用于“重新定义内置”(参见 list of all error codes)
在Visual Studio代码中设置,可以参考官方指导:Linting Python in VS Code
继@Samuel Dion-Girardeau
的- VS Code 似乎没有直接使用 these codes。
相反,它使用更具描述性的键 here 定义 W0622。
redefined-builtin
在这种情况下。 - 在我的 VS Code 设置中(文件>首选项>设置),我看到:
2.1python.linting.pylintUseMinimalCheckers": true
2.2"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
If you specify a value in pylintArgs or use a Pylint configuration file then pylintUseMinimalCheckers is implicitly set to false.
- 因此我需要追加:
3.1redefined-builtin
到"python.linting.pylintArgs": []
的--enable
部分 所以我们最终得到:
3.2python.linting.pylintUseMinimalCheckers": false
(推断这部分不需要...)
3.3"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"]
(我从 DEFAULT USER SETTINGS 复制并粘贴到 USER_SETTINGS)。
然后在那里应用更改,确保在 key/value 对之间添加一个逗号。
脚注: 我最近也在亚马逊实例上进行了设置。
我忘了你也需要 运行 pip install pylint
参见