Python 3.x 变量名是否有Python(3)lint,例如';len';(内置功能/保留字等)

Python 3.x 变量名是否有Python(3)lint,例如';len';(内置功能/保留字等),python-3.x,visual-studio-code,lint,Python 3.x,Visual Studio Code,Lint,我为此感到刺痛(在方法调用的参数中使用len),然后定义一个列表,并在其上执行len,得到: def fun(len): a = [] ... len(a) >>类型错误:“int”对象不可调用 VS代码IDE是否有Python3 lint,您可以将其配置为报告不是保留字/内置函数的变量?或一般的屏蔽/覆盖。 我没想到会有这种行为 经过反思,我知道Python的一个特性是可以将函数作为参数传递,因此使用了len和len()的双重语法。但这确实让我大吃一惊 Lint似乎会报告未使用的

我为此感到刺痛(在方法调用的参数中使用
len
),然后定义一个列表,并在其上执行len,得到:

def fun(len):
  a = []
  ...
  len(a)
>>类型错误:“int”对象不可调用

VS代码IDE是否有Python3 lint,您可以将其配置为报告不是保留字/内置函数的变量?或一般的屏蔽/覆盖。 我没想到会有这种行为

经过反思,我知道Python的一个特性是可以将函数作为参数传递,因此使用了
len
len()
的双重语法。但这确实让我大吃一惊

Lint似乎会报告未使用的变量之类的事情

这似乎不一致,因为它也没有提供开箱即用的名称掩码报告

如果这是可行的,有人可以建议如何在VS代码中设置它吗

环境

  • VS代码:版本1.23.1
  • Python 3.6.5
  • Python扩展2018.4.0
  • Microsoft Windows Server 2012 RC2
您可以使用来检查

它有一个专用的警告代码,
W0622
,用于“重新定义内置”(请参阅)

要在Visual Studio代码中设置它,您可以按照官方指南进行操作:

从@Samuel Dion Girardeau的

  • 似乎VS代码没有直接使用。 相反,它使用更具描述性的键定义了W0622<在本例中,代码>重新定义的内置项
  • 在我的VS代码设置(文件>首选项>设置)中,我看到:
    2.1
    python.linting.pylintUseMinimalCheckers:true

    2.2
    “python.linting.pylintArgs”:[]
  • 2.1等同于此

    在那

    如果在pylintArgs中指定值或使用Pylint配置 然后,IMALCHECKERS文件被隐式设置为false

  • 下面我需要添加:
    3.1
    重新定义了内置的
    ——启用
    部分的
    “python.linting.pylintArgs”:[]

    因此,我们以:
    3.2
    python.linting.pylinsuminimalcheckers:false

    (由此推断该部分不是必需的…
    3.3
    “python.linting.pylintArgs”:[“--disable=all”、“--enable=F、E、不可访问、重复键、不必要的分号、未分配全局变量、未使用变量、二进制运算异常、格式错误的字符串、字符串中的异常反斜杠、错误的打开模式、重新定义的内置”]
  • (我将默认用户设置复制并粘贴到用户设置中)

    然后在那里应用更改,确保在键/值对之间添加逗号


    脚注: 我最近也在Amazon实例上设置了这个

    我忘了您还需要运行
    pip安装pylint

    请参见。

    有人能解释一下为什么有人建议关闭此功能吗?
    len
    是一个函数的名称,您使用的参数是
    len
    ​​现在将是您输入fun的参数类型,正如我们看到的是整数,使用保留名称作为变量名是一种糟糕的编程实践。对。我知道现在。。。但是我想问的是,是否有一个lint检查器,它会在你作为Python新手不知道这些事情的情况下标记出来。当然,我知道这个函数。但是当我声明变量时,我并没有期望Python会默默地覆盖它,我期望一些IDE反馈警告。因为它不是一个真正的保留字,它是一个函数的名称。这是值得做的。发现我无意中也使用了“id”作为变量。似乎VSCode也试图给你一个视觉线索,当文本是函数时(比如内置),它会使文本变黄。-从未将二和二放在一起。啊!我还有一个名为globals的模块,我也对它进行了重命名和重构。W0622绝对是一个有用的。但愿这是一个默认。使用Python学习绳索时非常有用。
       --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