与下面的代码相比,python的"逻辑短路"规则会失败吗?如果是这样,为什么它不起作用?
print([1].append(3) or 2)
结果是"2","逻辑短路"原理似乎失败了
print([1,3] or 2)
结果为"[1,3]","逻辑短路"原理有效。
调用append
,如[1].append(3)
,返回None
(它们更新列表,但这在这段代码中不可见)。print([1].append(3) or 2)
就像print(None or 2)
,就像print(2)
,因为None
是虚假的。
例如:
>>> print([1].append(3))
None