【发布时间】:2012-11-28 04:11:49
【问题描述】:
我希望一个空列表将 test 值设为 False,但我有点困惑,为什么包含对象的列表的引用在测试值时也报告为 False,如下例所示:
>>> weapon = []
>>> weapon == True
False
>>> weapon.append("sword")
>>> weapon == True
False
>>> weapon
['sword']
如果weapon = [] 为假,为什么weapon = ['sword'] 也会为假?根据文档http://docs.python.org/release/2.4.4/lib/truth.html,它应该是 True。我对此的理解缺少什么?
【问题讨论】:
-
因为你使用的是
== True。 -
但是如果
weapon = ['sword']那么武器不应该是True 所以weapon == True? Weapon 等于一个对象,而不是None或一个空字符串。该文档指出“任何空序列,例如''、()、[]”。被认为是错误的......因此,一个非空字符串应该 == True。
标签: python object truthtable