PEP 8似乎没有规定换行应该从行的开头还是从结尾开始,以保持在 79 个字符的限制内。
例如我应该在哪里打破这条线?
long_function_name_1(long_function_name_2(long_function_name_3(long_function_name_4(long_function_name_5(long_function_name_6(long_function_name_7(long_function_name_8(args))))))))
从一开始?
long_function_name_1(
long_function_name_2(
long_function_name_3(
long_function_name_4(
long_function_name_5(
long_function_name_6(
long_function_name_7(long_function_name_8(args))))))))
还是从头开始?
long_function_name_1(long_function_name_2(long_function_name_3(
long_function_name_4(long_function_name_5(long_function_name_6(
long_function_name_7(long_function_name_8(args))))))))
我对推荐一种形式优于另一种形式的理由特别感兴趣。
最佳答案
首先,请记住 PEP8 是指南,而不是处方。实际上,只要符合语言规范,Python 代码就是有效的。实际上,我会说“只要 CPython 不报错,就没问题”。
使用类似 yapf
的程序或 black
格式化你的 Python 代码。这样你就不用担心细节了。在您的编辑器中设置一个快捷方式来调用格式化程序,或者在您在修订控制软件中 checkin 文件之前自动调用它。
我建议将这些工具可接受的行长度设置为 90 左右的值。PEP8 中过时的 79 个字符限制来自低分辨率监视器(并返回到硬件终端和电传打字机),这在今天几乎不相关。在具有列表理解和 f 字符串的现代 Python 代码中严格遵守这一限制实际上可以使您的代码不那么可读。观看 Raymond Hettinger 的 beyond PEP8 .另见 his post在评论中链接:
PEP 8 is mostly about readability. However, the line length limit often seems to cause less readable code.
有了这样的设置,yapf
就变成了:
long_function_name_1(
long_function_name_2(long_function_name_3(long_function_name_4(args)))
)
关于python - 在 Python 中从哪里开始换行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58156936/