为什么 python 中的'logical short-circuit'原则会失败?



与下面的代码相比,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

最新更新