以前,我以为我听说过在一行Python代码的末尾使用反斜杠来继续下一行,最好避免使用。我记得被告知的是,用括号括起来的东西是首选。
我想我在Where is my syntax error?中指出了至少一个例外,其中以下不是处理多行语句的合法方式:
(a =
b)
在Python中处理多行语句的首选方法有哪些规则?
答案 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)
然而,因为我们有合法的语法。