下一段代码是如何工作的?
a = None
b = None
print(a == b) # True
print(a == b is None) # also True
第一个印刷品很明显,None == None
,然而,这是我不理解的第二个印刷品。我可以想出两种方法来解释这一点:
(a == b) is None
,但这应该(而且确实(给我们False,因为True不是Nonea == (b is None)
,这也是False,因为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