【发布时间】:2010-10-12 12:29:54
【问题描述】:
In [20]: print None or False
-------> print(None or False)
False
In [21]: print False or None
-------> print(False or None)
None
这种行为让我很困惑。有人可以向我解释为什么会这样吗?我希望它们的行为相同。
【问题讨论】:
-
Python 中 ["Boolean" 操作的可能重复项(即:and/or 运算符)](stackoverflow.com/questions/3826473/…)
-
@SilentGhost:如果 None 被认为与 False 相同,为什么它返回 None 而不是 False?应用于两个假值的 OR 不应该返回 False 吗?
-
@SilentGhost:我明白了,我不明白,这就是我问的原因。
-
@SilentGhost 这很令人困惑,因为显然,官方文档描述的东西与人们对任何逻辑 OR 运算符的直观预期不同(即操作数的顺序无关)。行为按记录不一定意味着正确行为... ;-)
标签: python boolean-logic