279

为什么在这个千年里 Python PEP-8应该指定最大行长度为 79 个字符?

几乎所有的代码编辑器都可以处理更长的行。如何包装应该是内容消费者的选择,而不是内容创建者的责任。

在这个时代坚持 79 个字符是否有任何(合法的)充分理由?

4

9 回答 9

155

PEP-8 的大部分价值在于阻止人们争论无关紧要的格式规则,并继续编写良好的、格式一致的代码。当然,没有人真的认为 79 是最佳的,但是将其更改为 99 或 119 或任何您喜欢的线长都没有明显的好处。我认为选择是这样的:遵循规则并找到一个值得争取的理由,或者提供一些数据来证明可读性和生产力如何随行长而变化。后者将非常有趣,并且我认为很有可能改变人们的想法。

于 2010-05-08T09:29:40.410 回答
120

保持您的代码人类可读,而不仅仅是机器可读。许多设备一次只能显示 80 个字符。此外,通过能够将多个窗口并排设置,使屏幕较大的人更容易进行多任务处理。

可读性也是强制行缩进的原因之一。

于 2008-09-18T00:37:11.117 回答
55

我是一名每天必须处理大量代码的程序员。开源和内部开发的内容。

作为一名程序员,我发现一次打开许多源文件很有用,并且经常在我的(宽屏)显示器上组织我的桌面,以便两个源文件并排放置。我可能会同时在两者中进行编程,或者只是阅读其中一种并在另一种中进行编程。

当其中一个源文件的宽度大于 120 个字符时,我感到不满意和沮丧,因为这意味着我不能在一行屏幕上轻松地放置一行代码。它打乱了换行的格式。

我说“120”,因为这是我对代码宽的程度感到恼火的程度。在这么多字符之后,为了便于阅读,您应该跨行拆分,更不用说编码标准了。

我在编写代码时考虑了 80 列。这只是为了当我确实泄漏到那个边界时,这并不是一件坏事。

于 2008-09-18T00:44:24.827 回答
40

我相信那些学习排版的人会告诉你,每行 66 个字符应该是最可读的长度宽度。即便如此,如果您需要通过 ssh 会话远程调试机器,大多数终端默认为 80 个字符,79 个字符刚好合适,在这种情况下尝试使用更广泛的字符会变得非常痛苦。您还会对使用 vim + screen 作为日常环境的开发人员数量感到惊讶。

于 2008-09-18T01:53:00.340 回答
20

以默认大小打印等宽字体(在 A4 纸上)为 80 列 x 66 行。

于 2008-09-18T00:47:09.017 回答
14

这就是我喜欢 80 个字符的原因:在工作中,我使用 Vim 并在一个运行在 1680x1040 的监视器上一次处理两个文件(我想不起来了)。如果这些行不再存在,即使使用自动换行,我也无法读取文件。不用说,我讨厌处理其他人的代码,因为他们喜欢排长队。

于 2009-05-16T15:16:18.040 回答
6

由于空格在 Python 中具有语义含义,因此某些自动换行方法可能会产生不正确或模棱两可的结果,因此需要有一些限制来避免这些情况。自从我们使用电传打字机以来,标准的行长为 80 个字符,因此 79 个字符似乎是一个相当安全的选择。

于 2008-09-18T00:39:19.427 回答
3

我同意贾斯汀的观点。详细地说,过长的代码行更难被人类阅读,有些人的控制台宽度可能每行只能容纳 80 个字符。

样式推荐是为了确保您编写的代码可以在尽可能多的平台上被尽可能多的人阅读,并且尽可能舒适。

于 2008-09-18T00:40:22.153 回答
-3

因为如果你把它推到第 80 列之后,这意味着要么你正在编写一个非常长且复杂的代码行,而且做得太多(所以你应该重构),或者你缩进太多(所以你应该重构)。

于 2009-04-19T10:11:14.857 回答