使用方法调用在Python中格式化多行

时间:2018-06-04 09:38:33

标签: python code-formatting pep8 coding-style

Python中用于格式化多行方法调用代码的方式是什么?

my_obj.call(x,y).multiple(*args).methods([1,2,3])

括号/括号后隐式换行符如下所示:

my_obj.call(
  x, y).multiple(
  *args).methods(
  [1,2,3])

这有点难看,并不适合典型的Python风格。

  1. 使用反斜杠\格式化多个方法调用是否可以接受?

    my_obj.call(x, y) \
      .multiple(*args) \
      .methods([1,2,3])
    
  2. 如果可以接受,那么在方法调用之后在行中使用两个空格是否也可以接受,或者是否没有缩进?

3 个答案:

答案 0 :(得分:2)

我会像这样格式化:

my_obj.call(
    x, y
).multiple(
    *args
).methods(
    [1, 2, 3]
)

或使用\

my_obj.call(x, y) \
    .multiple(*args) \
    .methods([1, 2, 3])

凹痕应与块凹进相同,通常为4个空格。

答案 1 :(得分:1)

尾随\的替代方法是使用括号:

(my_obj.call(x, y)
  .multiple(*args)
  .methods([1,2,3]))

答案 2 :(得分:0)

pep8的方式是

temp_obj = my_obj.call(x,y)
temp_obj = temp_obj.multiple(*args)
temp_obj.methods([1,2,3])

或者如果第一行符合一行,即< 79个字符。

temp_obj = my_obj.call(x,y).multiple(*args)
temp_obj.methods([1,2,3])