Pylint给出假阳性E1101'nomember'错误'http.HTTPStatus'

2024-06-06 19:56:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用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 documentationVS Code docs中的pylint配置选项,并通过执行以下操作生成了一个.pylintrc文件

pylint --generate-rcfile > .pylintrc

在这个配置文件中,我可以找到以下行:

enable=c-extension-no-member

注释掉这一行并因此禁用c-extension-no-member检查,则会抑制假阳性E1101错误消息。然而,我仍然想知道这是一个解决办法还是一个真正的假阳性,因为它禁用所有c-extension-no-member检查,似乎不适合一般的方法。当然,可以指定在执行检查时忽略的特定模块,但我只想知道出现此错误消息的原因。在


Tags: no代码消息错误extensionnot阳性pylint