有人提到,Python脚本中的一行最好不要超过80个字符。例如:
print("A very long strings")
是否包含print
函数,字符串(包括空格),括号等字符?
除了print
之外,还不限于其他功能吗?
这背后的原因是什么?已经谷歌搜索答案,但仍然无法得到答案。
答案 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)
限制所需的编辑器窗口宽度使其成为可能 几个文件并排打开,在使用代码审查时效果很好 在相邻列中显示两个版本的工具。
当您使用python进行编码时,遵循PEP8约定是个好主意。
答案 3 :(得分:1)
是的,它包含占用空间的任何内容,并且不限于任何功能
通常,shell在移动到下一行之前只能在一行中显示80个字符。如果您在CLI中格式化内容,则从print语句中包含超过80个字符将抵消所有格式。这是因为它们遵循PEP8标准。