0

请参考随附的屏幕截图。

我正在研究一个scrapy管道。我正在使用带有 Anaconda/AutoPep8 的 Sublime Text 3。我刚从没有 AutoPep8 或 Anaconda 的 ST2 搬过来。

巨大的白点告诉我这条线的语法无效。我无法弄清楚问题出在哪里,所以我复制了该行并将其粘贴到当时是一个空文件的第 1 行。语法错误仍然显示,这表明前一行缺少右括号不是问题。

然后我编写了一些类似的代码,第 3、6 和 9 行。如您所见,它们都通过了集合。(我不关心其他小错误,它们不是问题)。

然后我将整个方法粘贴到这个新文档上,现在,如您所见,甚至可疑行 (22) 也通过了。

然后我复制并粘贴了整个类,再次,如您所见,第 49 行,它之前抱怨的代码现在根本不会引起任何问题。

我尝试使用命令调色板 - PEP8:预览更改,(请参阅https://github.com/wistful/SublimeAutoPEP8)但什么也没发生。

我还尝试了右键菜单 Anaconda > Autoformat PEP8 Errors 但 E501 错误(行太长)被忽略了,并且 if 语句中假定的语法错误没有发生任何事情。

注意:当我上周第一次开始使用 AutoPep8 修复 E501 错误时,我注意到大约在脚本执行到一半时,它突然完全停止报告错误。不知道这是否相关。

当 ST3 启动时,我也会收到此错误:https ://github.com/DamnWidget/anaconda/issues/514 。但是,共识似乎是,如果 Sublime 即使在您单击此错误后仍能正常工作,则无需担心。我只是提到这一点,以便尽可能多地为您提供帮助。

我还尝试将 len('advocate') 转换为字符串,但语法错误仍然存​​在。

这里发生了什么?Anaconda、AutoPep8、ST3 或我的代码中是否存在错误?

Ubuntu 16.04,Python 3.4,(但在 ST3 中“自动”构建)ST3 Build 3126(我不知道内部版本号如何与版本号对齐)Anaconda,AutoPep8 版本号未知,但我不到两周就拿到了前。在此处输入图像描述

4

1 回答 1

1

好吧,它花了很多非常耐心的谷歌搜索和 VSCode 中的比较测试,但我有一个非常简单的答案:我应该放 '==',而不是 '=' !是的,亲爱的朋友,它是基本的 Python。= 表示赋值,== 表示相等或比较。我的 if 属于后一种类型,因为您不能在 if 语句中进行赋值。现在 VSCode 并没有让这更清楚,我认为他们都使用 Pylint,但它至少让我知道这可能是一个有效的错误,无论我是否理解。(当然,除非我知道更多 Pylint 的开发人员......是的,不太可能)。

感谢 Jean Mark Gawron(他必须与克林贡皇帝有关)给我答案:http://gawron.sdsu.edu/python_for_ss/course_core/book_draft/programming_intro/boolean_results.html

于 2017-08-28T20:38:05.657 回答