我经历了 Python 中的 Truthiness并理解[]
类似的空对象在 Python 中被解释False
。
但是当我在 REPL 中输入以下内容时,它会返回False
:
>>> [] == False
False
这怎么可能?
我经历了 Python 中的 Truthiness并理解[]
类似的空对象在 Python 中被解释False
。
但是当我在 REPL 中输入以下内容时,它会返回False
:
>>> [] == False
False
这怎么可能?
因为==
不检查真实性,它检查平等。这两个对象的类型不同,因此它们不相等。
如果您想显式查看对象的真实性,请将其转换为 bool:
>>> bool([])
False
请注意,您永远不会在实际代码中这样做,因为真实的一点是转换是隐含的。相反,你会这样做:
if my_value:
...do something...
因为==如果对象等于其他对象,则返回相等...
在这种情况下 [] 不是 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