【问题标题】:What does it means to not exceeding 80 characters in a line in Python?Python中一行不超过80个字符是什么意思?
【发布时间】:2016-01-02 08:35:04
【问题描述】:

有人提到,Python 脚本中的一行最好不要超过 80 个字符。例如:

print("A very long strings")

是否包含print函数的字符、字符串(包括空格)、括号等?

而且不限于print以外的其他功能吗?

这背后的原因是什么?已经用谷歌搜索了答案,但仍然无法真正得到图片。

【问题讨论】:

  • 1.这包括一切。 2. 超过80个字符不会出现任何错误。这只是 python 的标准/良好实践。要了解更多信息,请从此处阅读python.org/dev/peps/pep-0008
  • “标准”是正确的,但我认为“好”主要是基于意见的。

标签: python coding-style pep8


【解决方案1】:

它包括在线上的所有内容。

原因是很长的行会妨碍清晰度和可读性。

要使用python代码风格guide的例子,哪个更容易阅读?

with open('/path/to/some/file/you/want/to/read') as file_1, open('/path/to/some/file/being/written', 'w') as file_2:
    file_2.write(file_1.read())

with open('/path/to/some/file/you/want/to/read') as file_1, \
     open('/path/to/some/file/being/written', 'w') as file_2:
         file_2.write(file_1.read())

另一个原因是历史原因。我在上面链接到的同一部分中的样式指南提到了针对各种情况的 72、79 和 80-100 个字符的限制。这些是punch card 的列长度。

【讨论】:

  • 请注意 \ 只是在下一行继续当前行 - 使用嵌套的 with 语句更好、更容易调试。
  • 感谢您的链接。我会尝试仔细阅读。如果我使用 print 函数的三引号来输入长字符串呢?我是否仍然希望每行不超过 80 个字符?
  • 样式指南说将文档字符串限制为 72 个字符。但正如迈克在回答中指出的那样,指南就是这样。这不是法律,而是建议。
【解决方案2】:

长度是多少?

一切都计入宽度。

“标准”

PEP8 是建议不是法律。 它很好地解释了原因:

  • 多个文件在编辑器中并排打开
  • 代码审查工具

此外,明确“允许”最多 99 个字符。

最大行长

将所有行限制为最多 79 个字符。

对于结构限制较少的长文本块(文档字符串或 cmets),行长应限制为 72 个字符。

限制所需的编辑器窗口宽度可以并排打开多个文件,并且在使用在相邻列中显示两个版本的代码审查工具时效果很好。

大多数工具中的默认包装会破坏代码的视觉结构,使其更难理解。选择限制是为了避免在窗口宽度设置为 80 的编辑器中换行,即使在换行时工具在最后一列中放置了标记字形也是如此。一些基于 Web 的工具可能根本不提供动态换行。

一些团队非常喜欢更长的线路长度。对于可以就此问题达成协议的团队专门或主要维护的代码,可以将标称行长度从 80 个字符增加到 100 个字符(有效地将最大长度增加到 99 个字符),前提是 cmets 和 docstrings 仍然被包装72 个字符。

实用技巧

除了/ 的续行之外,只要涉及括号,您就可以随时使用多行。事实上,它被认为更 Pythonic。

例如,你可以重写这个:

def func(very_long_name_1, very_long_name_2, very_long_name_3, very_long_name_4):
    pass

进入这个:

def func(very_long_name_1, very_long_name_2, 
         very_long_name_3, very_long_name_4):
    pass

或者这个:

def func(very_long_name_1, 
         very_long_name_2, 
         very_long_name_3, 
         very_long_name_4):
    pass

这同样适用于函数调用。

此外,列表(或元组或字典)可以在多行中定义:

my_list = ['string_1',
           'string_2',
           'string_3']

应用得当,这种编码风格提高了可读性。

【讨论】:

    【解决方案3】:

    根据PEP8 standard

    限制所需的编辑器窗口宽度使得拥有 几个文件并排打开,在使用代码审查时效果很好 在相邻列中显示两个版本的工具。

    使用 python 编码时遵循 PEP8 约定是个好主意。

    【讨论】:

      【解决方案4】:

      是的,它包括任何占用空间且不限于任何功能的东西

      通常,shell 在移动到下一行之前只能在一行中显示 80 个字符。如果您在 CLI 中格式化内容,打印语句中的 80 多个字符将抵消所有格式设置。这是因为它们遵循 PEP8 标准。

      【讨论】:

      • “通常”几十年前。
      • @TigerhawkT3 几十年前是的,但是,IDLE shell、命令提示符、终端等都默认为 80 个字符。实际上,命令提示符不会沿 x 轴调整大小。
      • “默认”远非“不能”。您使用什么终端无法更改每行的字符数?甚至 Windows 的 cmd.exe 也可以做到这一点(我设置为 120)。
      猜你喜欢
      • 1970-01-01
      • 2010-09-29
      • 1970-01-01
      • 2015-02-13
      • 1970-01-01
      • 1970-01-01
      • 2018-05-01
      • 2013-06-29
      • 2013-04-21
      相关资源
      最近更新 更多