对象身份比较操作符

1、Python提供了is和is not操作符来测试两个变量是否指向同一个对象。

a is b

这个表达式等价于下面的表达式。

id(a) == id(b)

2、

>>> a = 1
>>> id(a)
1502566672
>>>
>>> b = 1
>>> id(b)
1502566672
>>>
>>>
>>> c = 1.0
>>> id(c)
5448880
>>>
>>> d = 1.0
>>> id(d)
3298576
>>>

在上面的例子中,a和b指向了相同的整形对象,但是c和d并没有指向相同的浮点型对象。这是因为Python仅缓存简单整形。整型对象和字符串对象是不可变对象,所以Python会很高效的缓存它们。

原文地址:https://www.cnblogs.com/toudoubao/p/6534293.html