在python表达式中使用括号的最佳实践?

时间:2015-10-18 05:35:39

标签: python

在Python中,我已经意识到在编写表达式时,如果需要,可以使用括号。我给你举个例子:

while count > 10:

while (count > 10):

都被编译器接受。

我的问题是在python中使用括号表达式时的最佳做法是什么?即何时应在表达式中使用括号?

3 个答案:

答案 0 :(得分:4)

在您提供的示例中,不需要括号。他们在没有任何特殊原因(我能想到)的情况下使代码混乱。

使用括号的一些原因。使用括号:

1)提高代码清晰度

a * b + c(a * b) + c相同,但后者更清晰。在组合更复杂的代码(如三元运算)时,清晰度方面更加明显。

2)覆盖默认的操作顺序

(a + b) * ca + 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