在Python中一行中不超过80个字符意味着什么?

时间:2016-01-02 08:35:05

标签: python coding-style pep8

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

print("A very long strings")

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

除了print之外,还不限于其他功能吗?

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

4 个答案:

答案 0 :(得分:5)

它包含了所有内容。

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

使用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的列长度。

答案 1 :(得分:3)

长度是多少?

一切都在于宽度。

“标准”

PEP8法律的推荐。 它很好地解释了原因:

  • 在编辑器中并排打开的几个文件
  • 代码审核工具

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

  

最大线长

     

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

     

为了使用较少的结构限制(文档字符串或注释)来流动长文本块,行长度应限制为72个字符。

     

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

     

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

     

有些团队更喜欢更长的线路长度。对于专门或主要由可以就此问题达成一致的团队维护的代码,可以将标称行长度从80个字符增加到100个字符(有效地将最大长度增加到99个字符),前提是评论和文档字符串仍然包装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']

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

答案 2 :(得分:2)

根据PEP8 standard

  

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

当您使用python进行编码时,遵循PEP8约定是个好主意。

答案 3 :(得分:1)

是的,它包含占用空间的任何内容,并且不限于任何功能

通常,shell在移动到下一行之前只能在一行中显示80个字符。如果您在CLI中格式化内容,则从print语句中包含超过80个字符将抵消所有格式。这是因为它们遵循PEP8标准。