我使用pylint进行代码linting(在VS代码中使用pylint 2.3.1、astroid 2.2.5、python3.6.2)。在
可以使用以下代码段重现该行为:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from http import HTTPStatus
print(HTTPStatus.NOT_ACCEPTABLE.phrase)
通过调用
^{pr2}$给出以下错误消息:
E1101: Instance of 'NOT_ACCEPTABLE' has no 'phrase' member (no-member)
但是,我认为.phrase
是给定实例的成员,因为代码正在工作,打印所需的结果,.phrase
在{a1}中被引用。这就导致了错误消息是误报的假设。在
然后我查看了its own documentation和VS Code docs中的pylint配置选项,并通过执行以下操作生成了一个.pylintrc
文件
pylint --generate-rcfile > .pylintrc
在这个配置文件中,我可以找到以下行:
enable=c-extension-no-member
注释掉这一行并因此禁用c-extension-no-member
检查,则会抑制假阳性E1101
错误消息。然而,我仍然想知道这是一个解决办法还是一个真正的假阳性,因为它禁用所有c-extension-no-member
检查,似乎不适合一般的方法。当然,可以指定在执行检查时忽略的特定模块,但我只想知道出现此错误消息的原因。在
目前没有回答
相关问题 更多 >
编程相关推荐