在Python中,我已经意识到在编写表达式时,如果需要,可以使用括号。我给你举个例子:
while count > 10:
和
while (count > 10):
都被编译器接受。
我的问题是在python中使用括号表达式时的最佳做法是什么?即何时应在表达式中使用括号?
答案 0 :(得分:4)
在您提供的示例中,不需要括号。他们在没有任何特殊原因(我能想到)的情况下使代码混乱。
使用括号的一些原因。使用括号:
1)提高代码清晰度
a * b + c
和(a * b) + c
相同,但后者更清晰。在组合更复杂的代码(如三元运算)时,清晰度方面更加明显。
2)覆盖默认的操作顺序
(a + b) * c
和a + b * c
会有不同的行为。
同样,X or Y and Z
与(X or Y) and Z
不同。
此外,使用括号可以减轻程序员通过明确指定顺序来记忆隐式order of evaluation的需要。
答案 1 :(得分:1)
我总是写括号,因为我习惯于从实际需要它们的语言(C,Java ......)。在我看来,它也使代码更容易阅读 但是,括号仅在实际需要时才有用,例如计算复合表达式。添加括号没有其他理由。
答案 2 :(得分:1)
只有在明确目的的时候。
if (condition_one and condition_two) or condition_three:
没关系,即使你删除它们仍然可以正常工作。 and
具有比or
更高的运算符优先级并不是很明显(除非你花时间记住它)。同样地,没有人因为数学运算而错过你:
(2 * 3) / 6
显然,如果你需要覆盖运算符优先级,可以使用括号
(2 + 3) / 6 != 2 + 3 / 6
condition_one and (condition_two or condition_three) != \
condition_one and condition_two or condition_three
然而,parens确实会给线路增加额外的“噪音”。只有在实际需要时才能谨慎使用它们。
if (this) and (that) and (the_other):
应该是
if all([this, that, the_other])
或至少
if this and that and the_other