为什么PyCharm使用120个字符行而不是PEP8规定的79个字符?

58

PEP8明确规定最多79个字符,但是PyCharm默认为120个字符,并显示警告"PEP8:行太长(...>120个字符)"。

之前的PEP8版本是否使用了120个字符,而PyCharm没有更新其PEP8检查器?我找不到PEP8指南的以前版本,但是我可以很容易地找到PEP8 Python脚本的以前版本。

我要开始一个新的Python项目,不确定该使用哪个。

参考:

http://legacy.python.org/dev/peps/pep-0008/


如果你想符合PEP-8规范,那么答案就在你的链接中。 - Padraic Cunningham
可能存在一个不受Pep8控制(实际上也不应该受控制)的全局用户体验变量...但是PyCharm可以控制。 - Chris
我不明白为什么PEP-8不应该对开发者的经验产生影响负责。有一个流行的Stack Overflow回答说,代码行超过80个字符没有明显的好处。我记不起来还有什么比这更明显错误的说法了。 - undefined
3个回答

67

PyCharm基于IntelliJ开发。IntelliJ默认行长为120个字符。

这可能是因为像@annotated public static MyObjectFactoryFactory enterpriseObjectFactoryFactoryBuilderPattern {这样的常见Java名称无法适应仅有80个字符的一行。(我在开玩笑,但根据惯例,Java名称确实倾向于更长)。

pep8检查器是可配置的,因此您可以指定更好的最大行长 - 比如79个字符。

错误提示有误导性,因为pep8检查器使用类似于"PEP8:行太长(... > %s字符)" % max_line_setting的文本格式化。所以它正在使用pep8检查器,并带有特定的配置,而不是声称pep8规定了120个字符的行长。


我认为Intellij的Python插件就是Intellij版本的Pycharm。但我不会说Pycharm是建立在Intellij之上的,而Intellij是JetBrains公司的高端产品。 - DevLounge
2
根据JetBrains博客,“代码已全部在GitHub上公开,可以供您使用。它不是一个单独的项目,而是IntelliJ IDEA社区版主项目的一部分”。IntelliJ只是他们的Java IDE,提供免费的社区版和带有额外企业级功能的付费版。您也可以购买具有类似功能的PyCharm版本。 - munk
3
这是一个已知的问题,他们正在努力修正:https://youtrack.jetbrains.com/issue/PY-16078。 - phoenix

8
如果您想完全删除限制警告,可以按照以下步骤操作:
  1. 在PyCharm中,单击“文件”>“设置”
  2. 在项目设置部分中,单击“编辑器”>“检查”
  3. 在出现的列表中,展开Python
  4. 在Python下,向下滚动并单击“PEP8代码风格违规”
  5. 单击右下角“忽略错误”旁边的“+”按钮
  6. 键入E501并单击应用和/或确定

来源:


忽略这个PEP8违规通常是不良实践,因为它可能意味着在大多数情况下你的代码可读性较差。 - AJ123

-5
据我所知,PEP8从未允许120个字符,但并不是每个人都遵循PEP8。回答你的问题:为了礼貌和好的习惯,请保持在80个字符以下。

7
为什么PyCharm声称120符合PEP8标准,他们为什么误导人们? - Samuel
4
我会遵从 @munkhd 的回答,因为我不使用 PyCharm。(坚持使用 Emacs,一切都会更好...) - Jon Kiparsky
2
从PEP-8(但我编码最多达到120个字符,并且偶尔违反该限制)中:“...一些团队强烈倾向于更长的行长度。对于由可以就此问题达成协议的团队专门或主要维护的代码,可以将行长度限制增加到99个字符...” - NeilG

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接