问题描述
下一段代码如何工作?
a = None
b = None
print(a == b) # True
print(a == b is None) # also True
第一张照片很明显,None == None
,但是,我不明白这是第二张照片。我可以想到两种解释方式:
-
(a == b) is None
,但这应该(并且确实)给我们False,因为True并非None -
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