考虑到:
e = 'a' + 'b' + 'c' + 'd'
我怎么把上面的内容写成两行呢?
e = 'a' + 'b' +
'c' + 'd'
考虑到:
e = 'a' + 'b' + 'c' + 'd'
我怎么把上面的内容写成两行呢?
e = 'a' + 'b' +
'c' + 'd'
当前回答
在行末加一个\,或将语句括在parens(..)中。. 来自IBM的:
b = ((i1 < 20) and
(i2 < 30) and
(i3 < 40))
or
b = (i1 < 20) and \
(i2 < 30) and \
(i3 < 40)
其他回答
还可以在多行中中断方法(obj.method())的调用。
将命令括在圆括号“()”中,并跨越多行:
> res = (some_object
.apply(args)
.filter()
.values)
例如,我发现在链上调用Pandas/Holoviews对象方法很有用。
摘自《Python漫游指南》(Line Continuation):
当一个逻辑代码行长于可接受的限制时,您需要将其拆分到多个物理行上。如果一行的最后一个字符是反斜杠,Python解释器将连接连续的行。这在某些情况下是有用的,但通常应该避免,因为它很脆弱:在行末反斜杠之后添加空白将破坏代码,并可能产生意想不到的结果。 更好的解决方案是在元素周围使用圆括号。如果行尾有一个未关闭的圆括号,Python解释器将连接下一行,直到圆括号关闭为止。同样的行为也适用于大括号和方括号。 然而,通常情况下,必须分割很长的逻辑行是一个迹象,表明您试图同时做太多事情,这可能会影响可读性。
话虽如此,这里有一个例子,考虑多次导入(当超过行限制时,在PEP-8中定义),也适用于字符串:
from app import (
app, abort, make_response, redirect, render_template, request, session
)
在行末加一个\,或将语句括在parens(..)中。. 来自IBM的:
b = ((i1 < 20) and
(i2 < 30) and
(i3 < 40))
or
b = (i1 < 20) and \
(i2 < 30) and \
(i3 < 40)
来自马的口:明确的路线 加入 可能是两条或更多的物理线 使用连接成逻辑行 反斜杠字符(\),如下: 当物理行以。结束时 不是字符串一部分的反斜杠 字面的或注释的,它与 下面形成一个单一的逻辑 ,删除反斜杠和 在行尾字符之后。为 例子: 如果1900 <年< 2100且1 <=月<= 12 \ 和1 <=天<= 31和0 <=小时< 24 \ 和0 <=分钟< 60和0 <=秒< 60:#看起来像一个有效的日期 返回1 以反斜杠结尾的行不能 加上注释。反斜杠则不然 继续评论。反斜杠可以 除了字符串外,不能继续标记 文字(即,符号以外的 字符串字面量不能被分割 使用反斜杠的物理行)。一个 的其他地方反斜杠是非法的 字符串字面量外的行。
这条线是什么?你可以在下一行有参数,没有任何问题:
a = dostuff(blahblah1, blahblah2, blahblah3, blahblah4, blahblah5,
blahblah6, blahblah7)
否则你可以这样做:
if (a == True and
b == False):
或者使用显式换行:
if a == True and \
b == False:
查看样式指南了解更多信息。
使用括号,你的例子可以写在多行:
a = ('1' + '2' + '3' +
'4' + '5')
使用显式换行也可以得到同样的效果:
a = '1' + '2' + '3' + \
'4' + '5'
注意,样式指南说使用隐式的括号继续是首选,但在这种特殊情况下,仅仅在表达式周围添加括号可能是错误的方式。