'if'语句中的行条件?
有时我打破长的条件下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()
是的,为了清晰起见,我们正在进行一些垂直房地产交易。 很值得它IMO。
链接地址: http://www.djcxy.com/p/26775.html上一篇: line conditions in 'if' statements?
下一篇: Truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all()