0

概括

Pylint 抱怨类声明和以下函数中未定义的变量。如果我注释掉类声明,函数仍然被突出显示,我不确定为什么。

环境

操作系统:Suse Leap 42.3
编辑器:vscode 1.38
Python:3.4.6
Pylint:1.4.4
Pylint Args:["--load-plugin", "pylint_protobuf", "--enable=F,E,W"]

复制案例

#!/usr/bin/env python3
'''Dummy doc string'''

from ctypes import * # pylint: disable=unused-wildcard-import

class BOX(Structure):
    _fields_ = [("x", c_float),
                ("y", c_float),
                ("w", c_float),
                ("h", c_float)]

def example(a, b):
    c = str(a + b)
    print(c)

这会产生以下错误/警告

未定义变量 'Structure' pylint(undefined-variable) [6, 11]
未定义变量 'a' pylint(undefined-variable) [13, 13]
未定义变量 'b' pylint(undefined-variable) [13, 17]
未定义变量'c' pylint(undefined-variable) [14, 11]
本地禁用未使用通配符导入 (W0614) pylint(locally-disabled) [4,1]

如果我将鼠标悬停在Structure我可以看到class PyCStructType(),同样如果我将鼠标悬停在c我可以看到c: str,所以数据类型是已知的。

问题

  • 为什么上面的代码会产生 pylint 错误?(我希望只看到本地禁用未使用的通配符导入的警告)
  • 这个问题是否特定于我的环境?(旧版python等)

Nb 我不想用# pylint: disable=undefined-variable

4

0 回答 0