哪个更好?(为什么?)
if somevalue == False:
要么
if somevalue is False:
如果somevalue是字符串,您的答案会改变吗?
somevalue
而是取决于可以是什么somevalue:如果somevalue可以,则可以检查它是否是布尔值not:
not
if isinstance(somevalue, bool) and not somevalue
这不依赖于False单身。如果始终是单例,则还可以执行以下操作:
False
if somevalue is False
但是 Python的PEP8声明您不必关心该类,而只需使用:
if not somevalue
这将评估是否somevalue为“虚假”。请参阅有关真值测试的Python文档。
PEP8指出:
不要使用==将布尔值与True或False进行比较。
并给出以下示例:
Yes: if greeting: No: if greeting == True: Worse: if greeting is True:
在您的情况下,它转换为:
Yes: if not greeting: No: if greeting == False: Worse: if greeting is False:
请记住,除了空字符串外,每个字符串都被认为是“真实的” ''。
''