pythonis 与 == 区分 :类别:Python / 日期:2019-12-02 / 浏览:75 / 评论:0
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网别的相干文章!
发表评论 / 取消回复