我已经读过,当python评估一个条件时,像if x:
这样的东西会被翻译成if bool(x):
。为什么我会看到很多直接调用bool()
的代码?这主要是为了可读性还是有其他优势?
答案 0 :(得分:7)
bool()
中的if bool(x):
完全冗余。 if
将执行完全相同的操作已经。
如果您看到执行此操作的代码(在已经进行真值测试的上下文中使用bool()
,例如if
或while
语句),那么<没有任何优势。在truth value of the object is tested这样的上下文中,您不需要先将其转换为布尔值,只需创建双重工作。
仅在需要显式转换为布尔对象时才使用bool()
;例如,当将结果存储在变量中或将其传递给需要具有布尔值的函数时,或者将函数记录为返回布尔值时。