1

我经历了 Python 中的 Truthiness并理解[]类似的空对象在 Python 中被解释False

但是当我在 REPL 中输入以下内容时,它会返回False

>>> [] == False
False

这怎么可能?

4

2 回答 2

5

因为==不检查真实性,它检查平等。这两个对象的类型不同,因此它们不相等。

如果您想显式查看对象的真实性,请将其转换为 bool:

>>> bool([])
False

请注意,您永远不会在实际代码中这样做,因为真实的一点是转换是隐含的。相反,你会这样做:

if my_value:
    ...do something...
于 2016-04-08T11:38:44.870 回答
-2

因为==如果对象等于其他对象,则返回相等...

在这种情况下 [] 不是 None 只是一个空数组,例如:

if variable:
    print "true"
else:
    print "false"

如果变量是空字符串 ('') 或空数组 ([]),则打印结果为 false。

if variable == None:
    print "true"
else:
    print "false"

如果变量是空字符串 ('') 或空数组 ([]),则会打印出 fasle,因为它不是 None 类型(它的类型等于 str 或 list)。

== : 如果 2 个变量相等则返回 True

if:如果变量不是 None 并且不是空实例(如空数组或字符串),则返回 True

于 2016-04-08T11:43:41.767 回答