【问题标题】:How valid is pep-8 " Limit all lines to a maximum of 79 characters." [closed]pep-8 “将所有行限制为最多 79 个字符”的有效性如何。 [关闭]
【发布时间】:2011-03-12 23:21:42
【问题描述】:

This 似乎是 25 英寸显示器的历史遗物。我正在寻找 stackoverflow 成员对此的看法,您是否始终尊重此建议。

【问题讨论】:

  • 25 个 foot 监视器不存在,并且不会存在很长时间。你的意思是25"
  • 我想如果您使用的是投影仪...
  • 之前在这里讨论过:stackoverflow.com/questions/110928
  • Slaks:我在一家非常好的公司工作,他们从未来为所有开发人员导入显示器。
  • 简短的回答是,将代码包装成 80 列在今天和多年来一样荒谬,并且会导致代码混乱、不可读;有关示例,请参见 PEP-8 本身。大约 120 或 140 是合理的包装宽度。

标签: python


【解决方案1】:

我尝试使用它,因为我喜欢有一些约定来保持我的位置,但我知道动态换行之类的,它变得不那么常见了。例如,多年来 linux 内核将约定作为一个固定规则,但最近,他们已经接受了超过 80 个字符长的行的贡献。

要记住的另一件事是,许多编辑器都提供拆分视图。我经常在列中打开两个文档,并且使用宽屏显示器,这些列(对我而言)大约有 83 个字符的宽度。因此,在某些特定情况下,约定仍然有用。

【讨论】:

    【解决方案2】:

    不是每个人都有 25" 显示器。我们在这里使用双 21" 显示器设置,但这绝不是标准。还有 许多 人不是使用最新最好的设置编写 Python 的专业编码人员,而是使用 19 英寸或以下(笔记本电脑、上网本)显示器的可怜的大学生(我!)。爱好程序员和“其他“可能没有那么好的设置的专业人士,以及学校、公共和其他方面的桌面空间也受到限制。但是 80 个字符终端或多或少存在于无处不在

    有限的宽度(实际上,任何好的标准)都是 A Good Thing™,因为它提供了一个很好的标准外观。我知道,如果我查看 Python、Pygame、PyPy 或 MyPaint 中包含的模块,每个模块都会给人一种非常标准的感觉。这有助于我花时间理解代码。

    要再看一下代码宽度,请阅读 these people 的内容。

    【讨论】:

    • 对你来说“很好”..
    【解决方案3】:

    我认为 80 个字符的限制非常好,并且在 Python 中运行良好(在 Java 或 JavaScript 中可能不是很多,但在 Python 中非常可行)。我总是试图尊重它。我在 2 台 24 英寸显示器、1 台纵向显示器、另一台横向显示器上工作,它非常宝贵,可以让我在纵向显示器上并排放置 2 个窗口,或者在横向显示器上并排放置约 3.5 个窗口。

    虽然编辑器会包装长行,但它会以一种丑陋的方式包装它们,这会扰乱代码流,使其更难阅读。

    【讨论】:

      【解决方案4】:

      79 或 80 个字符的行限制在今天是完全合理的。其他几个人指出,并不是每个人的显示器都和你的一样宽。此外,您的 GUI 编辑器并不是读取或写入代码的唯一地方。这里还有一些排长队真的很痛苦的地方:

      • 并排差异。
      • 在电子邮件中编码 sn-ps。
      • 文本模式控制台。 (例如,在生产服务器调试期间。)
      • 打印输出。
      • 不最大化每个应用程序以填满桌面的人使用的 GUI 编辑器。 (我个人喜欢将 API 文档放在屏幕的一侧,将编辑器放在另一侧。)

      【讨论】:

      • 这是令人痛苦的设计。打印机不限于任何接近 80 列的内容,您可以在短期调试期间在控制台中轻松编辑较长的行。
      • 一点也不做作。我给出的所有例子(包括你不同意的两个)都来自实际的、多重的、真实的经验。使用的打印机种类繁多,驱动它们的软件种类也很多。许多操作人员真的不想在 vi 中编辑您的代码,以便他们知道应该在哪里换行。我可以继续说下去,但我想我已经表达了我的观点。从这样的经历中学到的一件事是要记住,整个世界不会像我(或你那样)做事。
      • 无论如何编译器都能理解。它很快出现在屏幕上的方式将完全取决于用户偏好。 IDE 离它很近,最后一个障碍是 git diff。
      【解决方案5】:

      出于以下几个原因,我始终遵守 80 个字符的限制,无论使用何种语言:

      • 一致性、一致性、一致性。
      • 可以在多个窗口或列中显示多个视图。
      • 新旧编辑器之间无缝切换。
      • 鼓励保持嵌套浅,参数少,表达式简洁。

      最后一个是最重要的,并且可以与冗长的命名约定轻松集成。如果它不适合一行或整齐地分成两行,那么不管你的命名如何,代码可能无论如何都需要调整。

      虽然我将其称为 80 个字符的限制,但在实践中,对于那些坚持滚动条边框的控制台编辑器来说,保持 79 甚至 78 列是一个好主意。

      在相关说明中,我使用制表符进行缩进,使用空格进行对齐。这样,如果选项卡大小更改,格式不会受到干扰。不过,关于 80 列规则,我最低限度地确保代码在使用 4 列制表符时不会碰到边距,因为大于 4 列的制表符大小不太常见。

      【讨论】:

      • 良好的编程习惯可以解决所有这些问题。屏幕宽度取决于编辑器的能力和品味。
      【解决方案6】:

      尝试将代码保持在合理的行长以提高可读性是个好主意。

      将代码严格限制为特定数量的字符,添加额外的换行(这会损害可读性)只是为了遵守这种任意的限制是不明智的。

      (可能会更糟。您可能在一个 Java 项目中使用那些 insaneLongJavaNames 以及 80 列限制和 8 列选项卡。无法阅读的过度包装的疯狂。)

      【讨论】:

      • 同意,无论如何编译器也能理解。它很快出现在屏幕上的方式将完全在个人设置方面。 IDE 离它很近,最后一个障碍是 git diff。
      【解决方案7】:

      短行更容易阅读 - 这就是为什么大多数书籍的行长在 60-80 个字符范围内,而报纸将其文本分成多列以减少行长。如果线条太长,我认为从左到右移动该距离会使眼睛变得紧张,并且难以保持在同一条线上。

      【讨论】:

      • 书籍(尤其是报纸)的短行是因为您阅读的是散文,而不是代码。我很少从左到右、从上到下阅读代码,而且我怀疑很少有人这样做。有时,较短的行确实使代码更具可读性,但这主要与它在书籍中的帮助不同。
      【解决方案8】:

      赞成短线。以下是我没有看到太多提及的几点:

      更具体的错误消息。如果一条语句被分成两行,而错误出现在第二行,您可以立即排除第一行导致的问题。

      在 Perforce 等版本控制系统中发生冲突的可能性较小。 (顺便说一句,这也是按字母顺序排列包含语句的一个很好的理由。)

      人们在移动设备上查看代码。您可以在 iPhone 上轻松地从 github 读取 80 个字符行。较长的行需要 z 形滚动,这会很快变得烦人。

      【讨论】:

        猜你喜欢
        • 2010-09-10
        • 1970-01-01
        • 2021-11-24
        • 2015-10-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多