我们越来越多地使用链式函数调用:
value = get_row_data(original_parameters).refine_data(leval=3).transfer_to_style_c()
可能很长。要在代码中保存长行,这是首选吗?
value = get_row_data(
original_parameters).refine_data(
leval=3).transfer_to_style_c()
或:
value = get_row_data(original_parameters)\
.refine_data(leval=3)\
.transfer_to_style_c()
我觉得使用反斜杠\
并将.function
添加到新行是件好事。这使得每个函数调用都有自己的行,它很容易阅读。但这听起来不是很多人喜欢的。当代码发生微妙的错误时,当它很难调试时,我总是开始担心它可能是backslash (\)
之后的空格。
引用Python
样式指南:
通过包装表达式可以在多行上分割长行 在括号内。这些应该优先使用a 行继续的反斜杠。确保缩进继续 恰当地排队。打破二进制文件的首选位置 操作员是在操作员之后,而不是在操作员之前。
答案 0 :(得分:15)
由于有一个左括号,我倾向于选择以下内容,这会避开non-recommended \
:
value = (get_row_data(original_parameters)
.refine_data(level=3)
.transfer_to_style_c())
这种语法的一个优点是每个方法调用都在它自己的行上。
类似的\
- 更少的结构对于字符串文字通常也很有用,因此它们不会超出每行限制推荐的79个字符:
message = ("This is a very long"
" one-line message put on many"
" source lines.")
这是一个单个字符串文字,由Python解释器有效创建(这比求和字符串要好得多,字符串在内存中创建多个字符串并多次复制它们,直到最后一个字符串为止获得)。
Python的代码格式 很好。
答案 1 :(得分:1)
这个选项怎么样:
value = get_row_data(original_parameters,
).refine_data(leval=3,
).transfer_to_style_c()
请注意,如果没有其他参数,则逗号是多余的,但我保留它们以保持一致性。
答案 2 :(得分:1)
不引用我自己的偏好(虽然看到你的问题的评论:))或替代答案是:
坚持你已经拥有的任何项目的风格指南 - 如果没有说明,那么尽可能保持与代码库的其余部分一致。
否则,选择一个你喜欢的风格并坚持下去 - 让其他人知道你是如何理解如果在一行上没有合理的可读性(或者你想描述它)的话,你可以写出链式函数调用。