【发布时间】:2019-07-22 01:28:44
【问题描述】:
我正在尝试运行 Google 机器学习速成课程中的一些示例 Python 代码。我正在尝试使用 Visual Studio Code 作为我的 IDE。
示例代码定义了一个调用相同类方法但参数不同的 lambda 函数。 VS Code 将此报告为“问题”。
我已将代码简化为:
def foo(x):
return x*2
f1 = lambda:foo(1)
f2 = lambda:foo(2)
VS Code 报告:函数已在第 1 行定义。
问题: 1)这实际上是一个错误,如果是,为什么? 2) 有没有更好的方法来做到这一点?
编辑
答案: 请参阅实际解决方案的公认答案
将 lambda 分配给变量违反 pep8。 pylint linter 对此保持沉默,但 PEP8 linter 生成:不要分配 lambda 表达式,使用 def
【问题讨论】:
-
你使用什么扩展?该消息并非来自 vscode vanilla,仅启用了 MS 提供的 Python 扩展。
-
@taegyung 你的评论很有帮助。事实证明,“python”扩展正在引起问题。请参阅斜体字的详细信息。我安装了“Python for VSCode”,这不会产生问题。但是,我不知道我从这种变化中获得或失去了什么。 名称:Python ID:ms-python.python 描述:Linting、调试(多线程、远程)、智能感知、代码格式化、重构、单元测试、sn-ps 等。版本:2019.6.24221 发布者:Microsoft VS Marketplace 链接:marketplace.visualstudio.com/items?itemName=ms-python.python
-
另外,我将它与 Python 3.6.8 64 位一起使用,由 anaconda 安装
-
那么您使用的是 ms-python.python 还是其他扩展?以及谁在报告问题(即问题应指定哪个工具,例如 Pylint、python 语言服务器的“python”等)。