类别:Python / 日期:2019-12-02 / 浏览:75 / 评论:0

pythonis 与 == 区分 :

is用于推断两个变量援用对象是不是为同一个, == 用于推断援用变量的值是不是相称。

a is b 相当于 id(a)==id(b),id() 可以猎取对象的内存地址。(引荐进修:Python视频教程)

假如 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相干技术文章,请接见Python教程栏目举行进修!

以上就是python is和==的区分的细致内容,更多请关注ki4网别的相干文章!

打赏

感谢您的赞助~

打开支付宝扫一扫,即可进行扫码打赏哦~

版权声明 : 本文未使用任何知识共享协议授权,您可以任何形式自由转载或使用。

 可能感兴趣的文章

评论区

发表评论 / 取消回复

必填

选填

选填

◎欢迎讨论,请在这里发表您的看法及观点。