0

我读过,当 python 评估条件时,类似的东西if x:会被翻译成if bool(x):. 那为什么我会看到很多bool()直接调用的代码呢?这主要是为了可读性还是有其他优势?

4

1 回答 1

7

bool()in完全if bool(x):多余的。if已经会做同样的事情

如果您看到执行此操作的代码(bool()在已经进行真值测试的上下文中使用,例如iforwhile语句),则没有任何优势。在这种情况下,对象的真值是经过测试的,您不需要先将其转换为布尔值,这只会产生双重工作。

bool()仅在需要显式转换为布尔对象时使用;例如,将结果存储在变量中或将其传递给需要具有布尔值的函数时,或者好像您的函数被记录为返回布尔值。

于 2015-10-08T17:36:10.627 回答