关于python:为什么PEP-8指定最大行长为79个字符?

关于python:为什么PEP-8指定最大行长为79个字符?

Why does PEP-8 specify a maximum line length of 79 characters?

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

在阳光下几乎每个代码编辑器都可以处理更长的行。 包装应该是内容消费者的选择,而不是内容创建者的责任。

在这个年龄段,是否有(合理的)充分理由坚持使用79个字符?


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


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

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


我是一个程序员,每天必须处理大量代码。开源以及内部开发的东西。

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

当这些源文件之一的宽度大于120个字符时,我会感到不满意和沮丧,因为这意味着我无法舒适地将一行代码放在屏幕上。它将格式设置换行。

我说" 120"是因为这是我对超出范围的代码感到恼火的水平。在输入了这么多字符之后,您应该为了便于阅读而将行分开,更不用说编码标准了。

我在编写代码时会考虑80列。只是这样,当我确实在该边界上泄漏时,这并不是一件坏事。


我相信那些研究版式的人会告诉您,每行66个字符应该是长度上最易读的宽度。即使这样,如果您需要通过ssh会话远程调试机器,大多数终端默认为80个字符,而79个恰好适合,在这种情况下尝试使用任何更宽的设备将是一个真正的痛苦。使用vim +屏幕作为日常环境的开发人员数量也会令您感到惊讶。


在A4纸上,默认尺寸下的等宽字体打印为80列乘66行。


这就是为什么我喜欢80个字符的原因:在工作中,我使用Vim并在运行于1680x1040的监视器上一次处理两个文件(我不记得了)。如果行数不再长,即使使用自动换行,我也很难读取文件。不用说,我讨厌处理别人的代码,因为他们喜欢排长队。


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


我同意贾斯汀。详细来说,人很难阅读过长的代码行,并且某些人的控制台宽度每行只能容纳80个字符。

推荐使用样式,以确保尽可能多的人在尽可能多的平台上尽可能舒适地阅读您编写的代码。


因为如果将其推到第80列之外,则意味着您正在编写的代码行很长而且很复杂,执行了太多(因此您应该重构),或者缩进了太多(因此您应该重构)。


推荐阅读

    linux设置命令行长度?

    linux设置命令行长度?,系统,工作,信息,地址,命令,工具,异常,管理,目录,文件,l

    linux输出字符串命令?

    linux输出字符串命令?,标准,基础,字符串,资料,简介,商业,数字,系统,命令,汉

    linux命令替换的字符?

    linux命令替换的字符?,命令,数据,系统,商业,字符串,文件,内容,方法,批量,字

    linux命令删除字符串?

    linux命令删除字符串?,软件,系统,代码,名称,通用,连续,字符,字符串,命令,空

    linux命令行字符隐藏?

    linux命令行字符隐藏?,系统,标准,信息,名称,代码,工具,文件夹,命令,文件,语

    linux转换字符集命令?

    linux转换字符集命令?,系统,名称,时间,位置,服务,文件,字符集,命令,格式,以

    linux命令指定jdk?

    linux命令指定jdk?,系统,官网,工具,状态,一致,底部,情况,环境变量,路径,文件

    linux字符动画命令?

    linux字符动画命令?,工作,系统,地址,信息,命令,目录,工具,时间,标准,基础,Lin

    字符串查找命令linux?

    字符串查找命令linux?,系统,字符串,工具,信息,文件,命令,字符,选项,文本,范

    linux命令替换字符串?

    linux命令替换字符串?,字符串,文件,批量,首次,数据,命令,内容,方法,用字,结

    linux命令中转义字符?

    linux命令中转义字符?,标准,本行,密码,字符,电脑,系统,环境,数据,命令,终端,l

    linux命令行字符颜色?

    linux命令行字符颜色?,系统,地址,代码,信息,数字,软件,通用,电脑,颜色,命令,l

    linux彩色字符命令?

    linux彩色字符命令?,数字,颜色,命令,字符,文字,终端,控制台,环境变量,白色,

    linux中替换字符命令?

    linux中替换字符命令?,工作,地址,系统,命令,资料,数据,信息,商业,管理,目录,L

    linux拼接字符串命令?

    linux拼接字符串命令?,系统,工作,代码,工具,名称,信息,地址,时间,数据,命令,l

    linux图形转字符命令?

    linux图形转字符命令?,系统,电脑,密码,界面,情况,地方,工具,图形界面,字符,

    linux隐藏字符的命令?

    linux隐藏字符的命令?,工作,地址,系统,发行,信息,标准,管理,命令,目录,文件,

    linux命令行最大字符?

    linux命令行最大字符?,系统,工作,数字,地址,等级,设备,软件,信息,标准,设计,l

    添加字符串命令linux?

    添加字符串命令linux?,情况,名称,文件,位置,名字,地方,连续,信息,命令,内容,L

    linux命令行大字符?

    linux命令行大字符?,工作,地址,系统,信息,管理,第一,发行,在线,最新,标准,lin