比较多个值到无

问题描述

下一段代码如何工作?

a = None
b = None
print(a == b) # True
print(a == b is None) # also True

第一张照片很明显,None == None,但是,我不明白这是第二张照片。我可以想到两种解释方式:

  1. (a == b) is None,但这应该(并且确实)给我们False,因为True并非None
  2. a == (b is None),这也是错误的,因为b is None为True并且None != True

因此,我无法想到Python如何在此语句上获得True

解决方法

Python中的比较链。

a==b is None的意思是(a==b) and (b is None)

请参见https://docs.python.org/3/reference/expressions.html#comparisons