【发布时间】:2018-11-09 14:32:34
【问题描述】:
我被这个one 刺痛了(在方法调用的参数中使用len),然后定义了一个列表,并对其执行 len,产生:
def fun(len):
a = []
...
len(a)
>>>TypeError: 'int' object is not callable
VS Code IDE 是否有 Python3 lint,您可以将其配置为报告不是保留字/内置函数的变量?或一般的屏蔽/覆盖。 我没想到会有这种行为。
经过反思,我知道这是 Python 的一个特性,您可以将函数作为参数传递,因此 len 和 len() 的双重语法。但这确实让我大吃一惊!
Lint 似乎报告了诸如未使用的变量之类的东西。
似乎不一致,它也没有提供开箱即用的名称掩码报告。
如果可行,有人可以建议如何在 VS Code 中进行设置吗?
环境:
- VS 代码:版本 1.23.1
- Python 3.6.5
- Python 扩展 2018.4.0
- Microsoft Windows Server 2012 RC2。
【问题讨论】:
-
有人能解释一下为什么人们建议关闭这个吗?
-
len是一个函数的名称,而您正在使用的参数是len现在将是您输入 fun 的参数类型,我们看到它是整数,使用保留名称作为变量名是一种不好的编程习惯。 -
对。我现在知道了……但我想问的是,是否有一个 lint 检查器可以标记它,以防你作为 Python 新手不知道这些东西。
-
当然我知道这个功能。但是我没想到 Python 在我声明变量时会默默地覆盖它,我期待一些 IDE 反馈警告。
-
是不是真的是保留字,是函数名。
标签: python-3.x visual-studio-code lint