Python—is,id

is比较内存地址是否相等

 is 主要是判断 2 个变量的值是否指向同一个内存地址,如果是的话,则返回 true,否则返回 false。

>>> a = 5555555
>>> b = 5555555
>>> a is b
False
>>> id(a) #a与b在内存中各开辟了一个地址存放它的值,虽然它们的值相同,但内存地址不同
1925864837008
>>> id(b)
1925868899600

>>> a = 123
>>> b = 123
>>> a is b
True
>>> id(a)
1880121952 #在这里可以看到,两个变量的值都指向了一个内存地址,在python解释器中,为了节省内存的占用,字符和数字在一定范围内存在一个小数据池,数据在这个范内指向同一个内存地址,列表、字典、元组、集合等不存在小数据池
>>> id(b)
1880121952
>>>

 id内存地址

>>> a = 321
>>> b = 456
>>> id(a)
1801244593360
>>> id(b)
1801244593392

 

posted @ 2017-12-21 19:41  NeroCl  阅读(155)  评论(0编辑  收藏  举报