我浏览了Truthiness in Python并了解[]
和类似的空对象在Python中被解释为False
。
但是当我在REPL中输入以下内容时,它会返回False
:
>>> [] == False
False
这怎么可能?
答案 0 :(得分:4)
因为==
不检查真实性,它会检查相等性。这两个对象的类型不同,所以它们并不相同。
如果您想明确查看对象的真实性,请将其转换为bool:
>>> bool([])
False
请注意,您永远不会在实际代码中执行此操作,因为真实性是转换是隐含的。相反,你会这样做:
if my_value:
...do something...
答案 1 :(得分:-2)
因为如果对象等于其他...
, == 会返回相等在这种情况下[] isnt None只是一个空数组 e.g:
if variable:
print "true"
else:
print "false"
如果变量为空字符串('')或空数组([]),则打印出false。
if variable == None:
print "true"
else:
print "false"
如果变量为空字符串('')或空数组([]),则打印出fasle,因为它不是None类型(其类型等于str或list)。
<强> == 强>: 如果2个变量相等则返回True
如果: 如果变量不是None并且ist不是空实例(如空数组或字符串)
,则返回True