python中is和==有哪些区别-创新互联

创新互联www.cdcxhl.cn八线动态BGP香港云服务器提供商,新人活动买多久送多久,划算不套路!

成都创新互联主营武定网站建设的网络公司,主营网站建设方案,app开发定制,武定h5小程序定制开发搭建,武定网站营销推广欢迎武定等地区企业咨询

小编给大家分享一下python中is和==有哪些区别,相信大部分人都还不怎么了解,因此分享这边文章给大家学习,希望大家阅读完这篇文章后大所收获,下面让我们一起去学习方法吧!

is 与 == 区别:

is 用于判断两个变量引用对象是否为同一个, == 用于判断引用变量的值是否相等。

a is b 相当于 id(a)==id(b),id() 能够获取对象的内存地址。

如果 a=10;b=a; 则此时 a 和 b 的内存地址一样的;

但当 a=[1,2,3]; 另 b=a[:] 时,虽然 a 和 b 的值一样,但内存地址不一样。

如果此时定义 a=10、b=10, 然后再对比 a is b 会发现返回的结果是 True,这是因为在 Python 中会实现创建一个小型的整形池,范围为 [-5,256],为这些整形开辟好内存空间,当代码中定义该范围内的整形时,不会再重新分配内存地址。而我在 Pycharm 中进行测试:

#coding=utf-8
a=100000000000;
b=100000000000;
print a is b

结果:

True

Python出于对性能的考虑,但凡是不可变对象,在同一个代码块中的对象,只有是值相同的对象,就不会重复创建,而是直接引用已经存在的对象。

以上是python中is和==有哪些区别的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联-成都网站建设公司行业资讯频道!


名称栏目:python中is和==有哪些区别-创新互联
浏览地址:http://myzitong.com/article/cohoji.html