目前在Python中维护一个大型应用程序并遇到了这个问题:
if a \
and b or c:
d
elif a \
and c:
d
else:
e
其中a
,b
,c
是布尔表达式,d
和e
是要执行的语句。 d
在每个子句中都是相同的语句,因此if
和elif
条件确实导致执行相同的序列(如果我的理解是正确的)。
但是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
?
我的直觉是它是前者,但我想确定。
答案 0 :(得分:1)
使用\
断开行只是为了代码清洁,它不会影响执行或评估顺序。由于and
的优先级高于or
,因此条件将评估为(a and b) or c
。