Python - 隐式 boolean 比较

标签 python boolean comparison

我正在阅读 PEP 8 (Python .org),我注意到使用 boolean 值进行隐式比较是首选。

if booleanCond == True     # Actually works
if booleanCond             # Works too but preferred according to PEP8

这两个语句的含义相同,但在大多数语言中我知道显式比较是首选。 谁能(快速地)向我解释一下为什么?

谢谢!

最佳答案

据我所知,在大多数语言中,显式比较是不受欢迎的。有a question关于软件工程堆栈交换上的这种实践。

总体情况是,如果您需要明确地将 boolean 条件与 True 进行比较,则您的变量可能存在命名问题。

if is_blue: 读起来很好(这在 python 中很重要,因为它有助于减少程序员的认知负担),而 if is_blue is True: 则不然。

像往常一样,这是一种启发式方法,不应该是教条式的,但如果您觉得需要将 boolean 值与 TrueFalse 进行比较来帮助您的读者了解您在做什么可能值得质疑您对此变量的命名。

关于Python - 隐式 boolean 比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59051931/

相关文章:

ruby-on-rails - 使用 Union Logic 的 ActiveRecord 动态基于属性的查找器?

algorithm - 所需的最少比较次数

python "is"返回 True 但 "=="返回 False

python - 在 python 中使用 vim 全方位完成时如何停止 "warnings"?

python - 如何使用各种关闭机制从同步上下文关闭异步循环

php - boolean 表达式应该如何用PHP编写?

c - 米斯拉违规 12.6

python - 比较 2 个整数列表

python - 在 Epoch-Python 中转换日期时间

python - Sympy:求解分数