检查False的正确方法是什么? [英] what is the correct way to check for False?
问题描述
哪个更好? (为什么?)
Which is better? (and why?)
if somevalue == False:
或
if somevalue is False:
如果somevalue
是字符串,您的答案会更改吗?
Does your answer change if somevalue
is a string?
推荐答案
它取决于somevalue
的含义:如果somevalue
可以是任何东西,则可以检查它是否是布尔值和not
:
It rather depends on what somevalue
can be: if somevalue
could be anything you could check that it's a boolean and not
:
if isinstance(somevalue, bool) and not somevalue
这不依赖于False
是单身人士.如果始终是单身人士,您也可以执行以下操作:
this doesn't rely on False
being a singleton. If it always is a singleton you can also do:
if somevalue is False
但是 Python的PEP8声明您不必关心该类,而只需使用:
But PEP8 of Python states you shouldn't care if it about the class and just use:
if not somevalue
这将评估somevalue
是否为"falsy".请参阅有关真值测试的Python文档.
this will evaluate if somevalue
is "falsy". See Python documentation on Truth value testing.
PEP8状态:
请勿使用==将布尔值与True或False进行比较.
Don't compare boolean values to True or False using == .
并给出以下示例:
Yes: if greeting:
No: if greeting == True:
Worse: if greeting is True:
根据您的情况将其翻译为:
which translates in your case to:
Yes: if not greeting:
No: if greeting == False:
Worse: if greeting is False:
请记住,除了空字符串''
外,每个字符串都被认为是真实的".
Keep in mind that each string is considered "truthy" except the empty string ''
.
这篇关于检查False的正确方法是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!