越来越多的人使用链式函数调用:
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样式指南:
长行可以用括号中的表达式包装在多行上。这些应该优先使用,而不是使用反斜杠行继续。确保适当地缩进续行。打破二进制运算符的首选位置是在运算符之后,而不是在运算符之前。
发布于 2012-08-12 08:12:49
我倾向于选择以下几种,避免使用不推荐 \,这要归功于括号的开头:
value = (get_row_data(original_parameters)
.refine_data(level=3)
.transfer_to_style_c())这种语法的一个优点是每个方法调用都在自己的行上。
类似的\-less结构对于字符串文本也很有用,因此它们不会超出建议的每行限制79个字符:
message = ("This is a very long"
" one-line message put on many"
" source lines.")这是一个字符串文本,它由Python解释器高效地创建(这比字符串之和要好得多,后者在内存中创建多个字符串,并多次复制它们,直到获得最终字符串)。
Python的代码格式很好。
发布于 2012-08-12 08:08:55
那么这个选项呢:
value = get_row_data(original_parameters,
).refine_data(leval=3,
).transfer_to_style_c()注意,如果没有其他参数,逗号是多余的,但我保持它们的一致性。
发布于 2012-08-12 08:21:21
不引用我自己的偏好(尽管请参阅对您的问题的评论:)或替代答案是:
坚持你已经拥有的任何项目的风格指导方针--如果没有声明,那么在风格上尽可能保持与其他代码库的一致性。
否则,选择一种你喜欢的风格并坚持下去--让其他人知道这就是为什么你会喜欢用链式的函数调用来写,如果没有合理的可读性的话(或者不管你想怎么描述它)。
https://stackoverflow.com/questions/11920583
复制相似问题