pytyhon 区分is和==

is: 对象标识符,判断是否同一个对象,即是否具有相同的内存地址,一般通过id(object)返回的值就可以判断两个对象是否相同。

==: 判断值是否相等。直接调用了对象的__eq__()钩子,该方法可以被重载以实现不同的比较行为。

一般情况下,相同的对象具有相等的值,即is 判断为True,那么==也为True,但是对于NaN的判断除外。对于NaN,两个NaN对象用is判断为True,但是并不相等,因为NaN实际上是一类float,故逻辑上也应该是不想等的,这个通过定义__eq__()函数的特殊行为既可实现。

猜你喜欢

转载自blog.csdn.net/S_o_l_o_n/article/details/115078600