【问题标题】:Why does flake8 throw a SyntaxError when calling print in a lambda?为什么 flake8 在 lambda 中调用 print 时会抛出 SyntaxError?
【发布时间】:2015-06-24 20:06:41
【问题描述】:

我在 vim 中使用 vim-flake8 (v0.5) 插件。使用以下代码:

fn = lambda: print("Hey")

我意外地收到了错误信息:

SyntaxError: 无效语法 [E901]

但尽管如此,python 解释器并没有抛出任何错误......为什么 flake8 会告诉这个?

【问题讨论】:

  • vim-flake8 是使用 Python2 和 Flake8 还是 Python3?

标签: python-3.x lambda flake8


【解决方案1】:
fn = lambda: print("Hey")

在 Python 2.7 中无效,但在 Python 3.4 中有效。因此,您可能会根据与实际用于运行代码的 Python 版本不同的 Python 版本来检查代码。

【讨论】:

  • 确实,flake8 使用的是 CPython 2.7.8,但是如何更改它的 python 版本呢?
  • @Spirine:运行which flake8 以检查您正在使用的 flake8 可执行文件,并确保它与您正在使用的 Python 版本匹配。因此,如果您有一个虚拟环境,则需要在该虚拟环境中安装 flake8 以匹配该虚拟环境中的 Python 版本。否则,全局更新 flake8 以匹配全局安装的 Python 版本。
猜你喜欢
  • 1970-01-01
  • 2018-02-12
  • 2011-02-27
  • 1970-01-01
  • 1970-01-01
  • 2012-09-29
  • 1970-01-01
  • 1970-01-01
  • 2022-07-02
相关资源
最近更新 更多