if
的长条条件分解成几行。最明显的方法是:
if (cond1 == 'val1' and cond2 == 'val2' and
cond3 == 'val3' and cond4 == 'val4'):
do_something
在视觉上不是很吸引人,因为动作与条件融为一体。但是,这是使用正确的 4 个空格的 Python 缩进的自然方法。
目前,我正在使用:
if ( cond1 == 'val1' and cond2 == 'val2' and
cond3 == 'val3' and cond4 == 'val4'):
do_something
但这不是很漂亮。 :-)
您能推荐一种替代方法吗?
您不需要在第二条条件行上使用 4 个空格。可能使用:
if (cond1 == 'val1' and cond2 == 'val2' and
cond3 == 'val3' and cond4 == 'val4'):
do_something
另外,不要忘记空白比您想象的更灵活:
if (
cond1 == 'val1' and cond2 == 'val2' and
cond3 == 'val3' and cond4 == 'val4'
):
do_something
if (cond1 == 'val1' and cond2 == 'val2' and
cond3 == 'val3' and cond4 == 'val4'):
do_something
两者都相当丑陋。
也许丢了括号(尽管《风格指南》不鼓励这样做)?
if cond1 == 'val1' and cond2 == 'val2' and \
cond3 == 'val3' and cond4 == 'val4':
do_something
这至少使您与众不同。
甚至:
if cond1 == 'val1' and cond2 == 'val2' and \
cond3 == 'val3' and \
cond4 == 'val4':
do_something
我想我更喜欢:
if cond1 == 'val1' and \
cond2 == 'val2' and \
cond3 == 'val3' and \
cond4 == 'val4':
do_something
这是《样式指南》 ,该指南(自 2010 年起)建议使用括号。
在简并的情况下,我采用了以下内容:简写为 AND 或 OR。
if all( [cond1 == 'val1', cond2 == 'val2', cond3 == 'val3', cond4 == 'val4'] ):
if any( [cond1 == 'val1', cond2 == 'val2', cond3 == 'val3', cond4 == 'val4'] ):
它可以刮掉几个字符,并清楚表明该条件没有任何微妙之处。
有人必须在这里提倡使用垂直空格! :)
if ( cond1 == val1
and cond2 == val2
and cond3 == val3
):
do_stuff()
这使得每个条件都清晰可见。它还允许更清晰地表达更复杂的条件:
if ( cond1 == val1
or
( cond2_1 == val2_1
and cond2_2 >= val2_2
and cond2_3 != bad2_3
)
):
do_more_stuff()
是的,为了清楚起见,我们将权衡一些垂直房地产。海事组织值得。