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

Formatting multiple lines in Python with method calls

Python 中可接受的样式是什么来格式化多行方法调用代码?

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

在 brackets/parentheses 之后使用隐式换行符,它看起来像这样:

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. 如果可以接受,那么在方法调用之后的行中使用两个空格是否也可以接受,还是应该没有缩进?

我会这样格式化:

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

或使用\:

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

缩进与块缩进相同,通常为4个空格。

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

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

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])