Python - 隐式布尔比较

Python - Implicit Boolean comparisons

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

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

这两个语句的意思相同,但我知道在大多数语言中,显式比较是首选。 任何人都可以(快速地)向我解释为什么吗?

谢谢!

AFAIK 显式比较在大多数语言中都是不受欢迎的。 a question 在软件工程堆栈交换上有关于此实践的内容。

总的来说,如果您需要明确地将布尔条件与 True 进行比较,您的变量可能存在命名问题。

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

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