Mar*_*ese 19
正如其他人所说,您可以提供disable参数来禁用特定消息。我想详细说明一下。
这是禁用多个消息并提供多个参数的语法,对我来说,通过谷歌搜索它并不是立即显而易见的:
"python.linting.pylintArgs": [
"--max-line-length=80",
"--disable=W0142,W0403,W0613,W0232,R0903,R0913,C0103,R0914,C0304,F0401,W0402,E1101,W0614,C0111,C0301"
]
Run Code Online (Sandbox Code Playgroud)您说,禁用一条消息后,您开始看到更多错误。 根据文档,这实际上可能有意义:
默认情况下,Visual Studio代码中的Python被配置为使用一组对大多数Python开发人员都友好的规则:
- 启用所有错误(E)和致命(F)消息。
- 禁用所有约定(C)和重构(R)消息。
- 禁用除以下以外的所有警告(W)消息:
- 无法访问(W0101):无法访问的代码
- 重复键(W0109):字典中的重复键%r
- 不必要的分号(W0301):不必要的分号
- 全局变量未分配(W0602):对%r使用全局,但未完成分配
- 未使用变量(W0612):未使用变量%r
- binary-op-exception(W0711):捕获异常是二进制“%s”操作的结果
- 格式错误的字串(W1302):格式无效的字串
- 字符串中的反斜杠(W1401):字符串中的反斜杠
- 坏开放模式(W1501):“%s”不是有效的开放模式
这些规则通过传递给Pylint的以下默认参数来应用:
Run Code Online (Sandbox Code Playgroud)--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
只要将
python.linting.pylintUseMinimalCheckers
设置为true
(默认值),就会传递这些参数 。如果在中指定值pylintArgs
或使用Pylint配置文件(请参阅下一节),则将pylintUseMinimalCheckers
其隐式设置为false
。
换句话说,在VS Code中,默认情况下PyLint相当松懈,仅向您显示错误消息和一些手动警告。但是,当您手动设置pylintArgs
为某些内容时,将pylintUseMinimalCheckers
被忽略,从而打开所有邮件的闸门。这可能就是禁用一条消息导致显示更多消息的原因。再说一次,我不确定为什么首先会看到未使用的导入消息,因为根据文档,默认情况下应该将其取消显示。
实际上,这目前不起作用:( python.linting.pylintUseMinimalCheckers": true
对我来说,在这个特定的时间点,但希望对您(以后的读者)有用。为了获得相同的效果,我必须手动将pylintArgs
其设置为应该自动设置的值:
"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"
]
Run Code Online (Sandbox Code Playgroud)奖励:这是我使用的已禁用消息列表的说明,如上面第1点所示。通常从此处获取:
# Disabled messages
# Pointless
# W0142 = *args and **kwargs support
# W0403 = Relative imports
# W0613 = Unused argument
# W0232 = Class has no __init__ method
# R0903 = Too few public methods
# R0913 = Too many arguments
# C0103 = Invalid name
# R0914 = Too many local variables
# C0304 = Final newline missing
#
# PyLint's module importation is unreliable
# F0401 = Unable to import module
# W0402 = Uses of a deprecated module
# E1101 = Module x has no y member
#
# Already an error when wildcard imports are used
# W0614 = Unused import from wildcard
#
# Stricter messages that can be disabled until everything else has been fixed
# C0111 = Missing docstring
# C0301 = Line too long
Run Code Online (Sandbox Code Playgroud)"python.linting.pylintArgs": [
"--disable=C0111"
],
Run Code Online (Sandbox Code Playgroud)
您也可以按消息类型禁用,例如,--disable=W
.
一个很好的参考是www.pylintcode.info,其中包含消息ID和消息类型的列表.
在文件顶部的行中添加以下内容将消除错误...并确保程序内的行是否重复(如果是),则将其删除。
# pylint: disable=unused-wildcard-import, method-hidden
# pylint: enable=too-many-lines
Run Code Online (Sandbox Code Playgroud)
在 VS Code 设置中 ( CTRL+COMMA
)
"python.linting.pylintArgs": [
"--disable=W0614"
],
Run Code Online (Sandbox Code Playgroud)
有关更多想法:https://code.visualstudio.com/docs/python/linting#_commandline-arguments-and-configuration-files
归档时间: |
|
查看次数: |
11563 次 |
最近记录: |