我认为每个 Python 代码都见过 PEP 8。其中引起我的注意的是:
Limit all lines to a maximum of 79 characters.
我坐在一台宽屏幕电脑前,整个屏幕都在编程。我不是在终端中编程,也没有计划在终端中编程。因此,我不会遇到字符行限制的问题。
有多少人实际上遵循这个限制呢?如果你不是在80个字符限制的终端中编码,你还会遵循它吗?我不遵循它是不好的吗?
我讨厌这个限制是Python风格指南的一部分。
我认为每个 Python 代码都见过 PEP 8。其中引起我的注意的是:
Limit all lines to a maximum of 79 characters.
PEP 8:
但最重要的是:知道何时不一致——有时候,样式指南并不适用。当不确定时,请运用你的最佳判断。
你是唯一一个需要阅读这份代码的人吗?
无论你使用什么编程语言,将代码行长度控制在合适范围内都是推荐做法。
深层嵌套代码:这种代码很难跟进,特别是当你有超过2个级别的嵌套时。当阅读代码时,往往会错过else子句,或者忘记哪个else是为什么而存在于更长的函数中。尝试将代码分解成多个函数以提高可读性。
复杂表达式:比如从一个对象中访问另一个对象中的值... 或者当你需要对来自10个不同位置的多个值执行单个操作,并将所有函数调用和运算符合并到一行中时。如果使用临时变量将逻辑拆分为更小的片段,那么你将显着提高可读性。你也应该了解此内容。
话虽如此,PEP只是一条指南。当你认为有正当理由时,可以自由打破它。如果你经常打破它,你需要重新考虑写代码的方式。
if
与 for
对齐。 - intuited我发现阅读超过80个字符的文本很困难。我的眼睛在回到左边界时容易失去所在行。因此,在某种程度上,这不是因为必须在终端(或cmd窗口或xterm)上查看代码而受到限制,而是一种可读性要求。 我有时会打破规则一两个字符,但总体上我并不介意。此外,我几乎从不使用\ continuation字符,因为我利用列表中的隐式连续。
class Rectangle
示例。我看第一个if
语句,必须查看每一行以找到实际代码块的开始位置。有三行if
语句和一个空格添加到代码块中。这让我感到困惑。 - dave我将我的编辑器设置为显示80个字符的限制线,并将其用作警告,而不是停止符。如果我可以在达到限制之前整齐地将行延续到下一行,我会这样做。但是,如果插入延续使其难以阅读或使其令人困惑,我就会保留长行。我不会为了指南而使代码更难阅读。
没有办法。
✔ 我的论点:
如果字符串被切割在意外位置,grep
或“查找文件”将失败。
垂直限制(VT100终端)比80个字符的水平限制更痛苦。
✔ 结论:
It's like try-
ing to read
a news arti-
cle written
like this.
PEP8是为人类而设的,但即使您不遵循它,您的程序也会运行。
如果您不分享代码并且没有计划这样做,那么可以随心所欲。
如果您计划将来分享代码的某些部分,那么应该遵循PEP8。我的意思是,如果几行代码超过了85个字符,可能没有人会在意。但是,如果代码一直超过200个字符宽度,阅读起来会很困难。如果您曾经阅读过报纸,当使用列格式化文本时,同样存在这个问题。
解决行长度问题的方法既不是任意的断行和续行字符,也不是使用括号将某些表达式包含在内部进行隐式行续。它可能是引入中间变量和函数,以便逻辑上在少于79个字符的情况下进行代码分割。
顺便说一句,您可能希望坚持更严格的限制。我更喜欢72个字符,因为我可以在80个字符的文本邮件中允许一个或两个额外的引用级别。如果不这样做,缩进将在第一个引用处中断。
与所有风格指南一样,它只是一个指南。你是否遵循它取决于你自己。主要目标是保持一致性。
话虽如此,我建议采用约80个字符的限制,原因如下: