python中 is 与 == 的区别

2018-06-22 00:59:25来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

is 是完全相同,值以及内存位置一摸一样

==是值相同,内存位置不一样

>>> a=[11,22,33]
>>> b=[11,22,33]
>>> id(a)
100711200
>>> id(b)
100667960
>>> a==b
True
>>> a is b
False

except : 

 

>>> a=1
>>> b=1
>>> id(a)
1605227568
>>> id(b)
1605227568
>>> a==b
True
>>> a is b
True

为什么呢?这是为了高效率使用内存,Python3的解释器中实现了小数字和字符串缓存的机制,小数字的缓冲范围是[-5 ~ 256],字符串的缓存位数默认是20位

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Python 学习笔记

下一篇:用Django实现一个可运行的区块链应用