Python中的多行语句

时间:2016-06-03 16:50:44

标签: python syntax multiline

以前,我以为我听说过在一行Python代码的末尾使用反斜杠来继续下一行,最好避免使用。我记得被告知的是,用括号括起来的东西是首选。

我想我在Where is my syntax error?中指出了至少一个例外,其中以下不是处理多行语句的合法方式:

(a =
  b)

在Python中处理多行语句的首选方法有哪些规则?

2 个答案:

答案 0 :(得分:2)

这个想法并不是将整个陈述括在括号中。我们的想法是在括号,括号或大括号内部最自然的点上打破界限。例如,

x = func(AbsurdlyLongArgumentNameSeriouslyItsWayTooLong1, AbsurdlyLongArgumentNameSeriouslyItsWayTooLong2)

可能会成为

x = func(AbsurdlyLongArgumentNameSeriouslyItsWayTooLong1,
         AbsurdlyLongArgumentNameSeriouslyItsWayTooLong2)

l = [importantthing1, importantthing2, importantthing3, importantthing4, importantthing5, importantthing6]

可能会成为

l = [
    importantthing1,
    importantthing2,
    importantthing3,
    importantthing4,
    importantthing5,
    importantthing6
]

如果你的长行还没有包含一个自然点来打破它,你可以在该行的某个表达式周围引入括号:

number = thing1 + thing2 * thing3 / thing4 + thing5 * thing6 * thing7 * thing8 - thing9 / thing10 + thing11

可能会成为

number = (thing1
          + thing2 * thing3 / thing4
          + thing5 * thing6 * thing7 * thing8
          - thing9 / thing10
          + thing11)

答案 1 :(得分:1)

  

我记得被告知的是,将内容括在括号中是首选。

这是对的,但它仅在语法允许的情况下有效。

表达式可能是有用的,但分配等命令可能不是。

如你所见,

(a =
  b)

不起作用。

你可以尝试

a = (
  b)

然而,因为我们有合法的语法。