Python PEP 8 文档字符串行长度

19 投票
3 回答
12167 浏览
提问于 2025-04-17 19:14

我最近开始觉得遵循PEP 8是个好主意。我让我的编辑器显示了80列的标记,现在正在尝试把行数调整到这个范围内。我的问题是,PEP 8里说:

所有行的长度最多限制为79个字符。

这听起来很合理。

[...] 对于较长的文本块(比如文档字符串或注释),建议将长度限制为72个字符。

为什么是72个字符?为什么文档字符串或注释不可以用79个字符呢?

3 个回答

0

把代码行限制在79个字符的原因是为了让它们能适应宽度为80个字符的终端(这种终端似乎还在用)。而文档字符串使用72个字符的原因是,这样可以确保左右两边的空白是一样的(毕竟文档字符串是有缩进的),同时还能保持在80个字符的宽度内。

4

文档字符串通常和它们所属的函数保持相同的缩进,并且用三个引号开始和结束:

def foo(bar, baz):
    """Frobnicate the foobars into baz

    Parameters are ham and spammed.

    """

这样一来,剩下的字符数就是79减去4再减去3,等于72个字符。

13

我觉得这跟以前的文本文件有关系:

在打字机时代结束时,大多数设计都是基于每行72个字符,这个数字是通过每英寸12个字符乘以6英寸得来的(比如IBM的Selectric打字机)。这样做是为了确保每个边距至少留出1英寸,当时美国政府标准化了8.5×11英寸的纸张。

来源

很多普通文本文件仍然遵循每行72个字符的传统。

我认为这就像文档字符串(docstrings)常常在代码之外的地方使用一样,所以遵循大多数普通文本文件的风格是有道理的,这样可以尽量保持一致。例如,man页面的文本通常限制在72个字符以内。通过将文档字符串限制在72个字符,help()的输出也就和这个保持一致了。

这个关于程序员的问题也可能相关。

撰写回答