Python控制流与行划分

时间:2015-06-14 18:29:02

标签: python

目前在Python中维护一个大型应用程序并遇到了这个问题:

if a \
    and b or c:
    d
elif a \
    and c:
    d
else:
    e

其中abc是布尔表达式,de是要执行的语句。 d在每个子句中都是相同的语句,因此ifelif条件确实导致执行相同的序列(如果我的理解是正确的)。

但是d说每个街区都不同;那么如何评估逻辑,特别是在if块中?它会是这样的:

if a and (b or c)

相当于

if (a and e)

代表e = b or c;或者更像是

if (a and b) or c

相当于

if (e or c)

for e = a and b

我的直觉是它是前者,但我想确定。

1 个答案:

答案 0 :(得分:1)

使用\断开行只是为了代码清洁,它不会影响执行或评估顺序。由于and的优先级高于or,因此条件将评估为(a and b) or c