您的位置:首页 > 编程语言 > Python开发

Python is与==的区别

2016-09-30 22:05 357 查看
虽然有很多类似的介绍,但是我觉得我还得记录下,只有记录下来了才能算是自己的东西。
在pyhon中,==的概念就是值(value)相同就为true,但是is的概念是必须是ID相同,也就是存储地址相同,或者说指向地址相同。

例子

>>> a = [1, 2, 3]
>>> b = a
>>> b is a
True
>>> b == a
True
>>> b = a[:]
>>> b is a
False
>>> b == a
True
<pre name="code" class="python">>>> id(a)
1905732376584
>>> id(b)
1905732376840



这样子就可以看到明显的不同。

但是因为Python对于短小的int与string类型进行了地址上的优化,所以有时候使用起来==与is基本类似。

例子:

a=4
b=4
a is b
结果应为true

但是float类型却不行:

a=2.5
b=2.5
a is b
结果为false
另外,闲着蛋疼,实测下来int类型最大极限应该是256。

>>> a=256
>>> a is 256
True
>>> id(a)
1511989680
>>> id(256)
1511989680
>>> a=257
>>> a is 257
False
>>> id(a)
2310294174960
>>> id(257)
2310294174800
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python is