检查False的正确方法是什么?

pat*_*ork 7 python boolean boolean-expression

哪个更好?(为什么?)

if somevalue == False:
Run Code Online (Sandbox Code Playgroud)

要么

if somevalue is False:
Run Code Online (Sandbox Code Playgroud)

如果somevalue是字符串,你的答案会改变吗?

MSe*_*ert 6

而是取决于可以是什么somevalue:如果somevalue可以,则可以检查它是否是布尔值not

if isinstance(somevalue, bool) and not somevalue
Run Code Online (Sandbox Code Playgroud)

这不依赖于False单身。如果始终是单例,则还可以执行以下操作:

if somevalue is False
Run Code Online (Sandbox Code Playgroud)

但是 Python的PEP8声明您不必关心该类,而只需使用:

if not somevalue
Run Code Online (Sandbox Code Playgroud)

这将评估是否somevalue为“虚假”。请参阅有关真值测试的Python文档

PEP8指出:

不要使用==将布尔值与True或False进行比较。

并给出以下示例:

Yes:   if greeting:
No:    if greeting == True:
Worse: if greeting is True:
Run Code Online (Sandbox Code Playgroud)

在您的情况下,它转换为:

Yes:   if not greeting:
No:    if greeting == False:
Worse: if greeting is False:
Run Code Online (Sandbox Code Playgroud)

请记住,除了空字符串外,每个字符串都被认为是“真实的” ''


归档时间:

查看次数:

7046 次

最近记录:

7 年,4 月 前