Readability of if block
我在
理想情况下,我希望将
1 2 3 4 5 6 7 8 9 10 11 | if (expression1 and expression2) or ( expression2 and ( (expression3 and expression4) or (expression3 and expression5) or ( expression4 and (expression6 or expression7) ) ): pass |
现在它都在一行中,不太可读。
您可以对第一行使用旧样式的反斜杠,其他人不需要它,因为您使用的是括号:
1 2 3 4 5 6 7 8 9 10 11 12 | if (expression1 and expression2) or \ ( expression2 and ( (expression3 and expression4) or (expression3 and expression5) or ( expression4 and (expression6 or expression7) ) ) ): pass |
请注意,您的示例必须是固定的,因为缺少一个右括号。
python有几种允许多行语句的方法。在您的例子中,您可以简单地将整个if条件括在括号中:
1 2 3 4 5 6 7 8 9 10 11 | if ((expression1 and expression2) or ( expression2 and ( (expression3 and expression4) or (expression3 and expression5) or ( expression4 and (expression6 or expression7) ) )): pass |
不过,我应该注意到,在一条
使用将表达式放在多行上,甚至可以识别它以提高可读性:
1 2 3 4 5 6 7 8 9 10 | if (expression1 and expression2) or \ (expression2 and \ (\ (expression3 and expression4) or \ (expression3 and expression5) or \ ( \ expression4 and (expression6 or expression7) \ )\ ): pass |
你可以这样做:
1 2 3 4 5 6 | t1_2=(expression1 and expression2) t3_4=(expression3 and expression4) t3_5=(expression3 and expression5) t6_7=(expression6 or expression7) if test1 or(expression2 and (t3_4 or t3_5 or(expression4 and t6_7)): pass |