为什么直接调用bool()?

Jpa*_*ish 0 python boolean truthiness

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

Mar*_*ers 7

bool()if bool(x):完全冗余的.if会做同样的事情已经.

如果您看到执行此操作的代码(bool()在已经进行真值测试的上下文中使用,例如ifwhile声明),则没有任何优势.在这样的上下文中,对象真值被测试,你不需要首先将它转换为布尔值,这只是创建双重工作.

使用bool()只有当你需要显式转换为一个Boolean对象; 例如,当将结果存储在变量中或将其传递给需要具有布尔值的函数时,或者将函数记录为返回布尔值时.