Python隐式布尔比较

Python隐式布尔比较,python,boolean,comparison,Python,Boolean,Comparison,我正在阅读PEP8(Python.org),我注意到使用布尔值的隐式比较是首选 if booleanCond == True # Actually works if booleanCond # Works too but preferred according to PEP8 这两个语句的意思相同,但在大多数语言中,我知道显式比较是首选。 有人能(很快)给我解释一下原因吗 谢谢 在大多数语言中,明确比较是不受欢迎的。在软件工程堆栈交换上有关于此实践的介绍 重要的

我正在阅读PEP8(Python.org),我注意到使用布尔值的隐式比较是首选

if booleanCond == True     # Actually works
if booleanCond             # Works too but preferred according to PEP8
这两个语句的意思相同,但在大多数语言中,我知道显式比较是首选。 有人能(很快)给我解释一下原因吗


谢谢

在大多数语言中,明确比较是不受欢迎的。在软件工程堆栈交换上有关于此实践的介绍

重要的是,如果您需要明确地将布尔条件与
True
进行比较,那么您的变量可能存在命名问题

if is\u-blue:
读起来很好(这在python中很重要,因为它有助于减少程序员的认知负荷),而
if is\u-blue是真的:
读起来不好


像往常一样,这是一种启发,不应该是教条式的,但是,如果您觉得需要将布尔值与
True
False
进行比较,以帮助读者理解您在做什么,那么可能值得对该变量的命名提出疑问。

Imo
==True
不会添加任何新信息,因此它只是让代码变得混乱1。您应该将
is
与布尔值一起使用,而不是
==
2。如果某件事或如果某件事是真的,那两种说法是不等价的。例如,“代码> BooLeNANCOD”是一个非空字符串,例如,“深<代码>是< BooRANS < /代码>?哇?!如果
booleanCond
已经是
bool
,那么为什么不
If((booleanCond==True)==True
?因为你说这很傻?嗯……是的。