Почему flake8 выдает SyntaxError при вызове print в лямбде?

Я использую плагин vim-flake8 (v0.5) с vim. Со следующим кодом:

fn = lambda: print("Hey")

Я неожиданно получаю сообщение об ошибке:

SyntaxError: неверный синтаксис [E901]

Но, тем не менее, интерпретатор python не выдает никакой ошибки... Почему flake8 говорит об этом?


person Spirine    schedule 17.04.2015    source источник
comment
Vim-flake8 использует Python2 с Flake8 или Python3?   -  person Sean Vieira    schedule 17.04.2015


Ответы (1)


fn = lambda: print("Hey")

недействителен в Python 2.7, но действителен в Python 3.4. Таким образом, вы можете проверять код на версии Python, отличной от той, которую вы фактически используете для запуска кода.

person Simeon Visser    schedule 17.04.2015
comment
Действительно, flake8 использует CPython 2.7.8, но как изменить его версию python? - person Spirine; 17.04.2015
comment
@Spirine: запустите which flake8, чтобы проверить, какой исполняемый файл flake8 вы используете, и убедитесь, что он соответствует используемой версии Python. Поэтому, если у вас есть виртуальная среда, вам необходимо установить flake8 внутри этой виртуальной среды, чтобы она соответствовала версии Python в этой виртуальной среде. В противном случае глобально обновите flake8, чтобы он соответствовал глобально установленной версии Python. - person Simeon Visser; 17.04.2015