在python PEP8结束时我正在阅读:
使用时不要将布尔值与True或False进行比较 ==
Yes: if greeting:
No: if greeting == True:
Worse: if greeting is True:
Run Code Online (Sandbox Code Playgroud)当布尔值为时True,我对该推荐没有问题,但在检查时听起来很奇怪False
如果我想知道变量问候语是否为假,我为什么不写:
if greeting == False:
Run Code Online (Sandbox Code Playgroud)
如果我写if not greeting:它将具有与上述声明截然不同的含义.如果问候语是什么怎么办?如果是空字符串怎么办?这个PEP8推荐是否意味着存储布尔值的变量应该只包含True或False,并且这些变量应该避免None?
在我看来,它似乎是来自其他语言的静态类型的推荐,并且不适合python,至少与False相比.
顺便说一下,有谁知道为什么if greeting is True:被描述为更糟糕if greeting == True:?我们还应该明白那if greeting is False:也更糟if greeting == False:吗?