Python 中 == 和 is 的区别是什么?
发布于 2022-09-21 08:53:01
关注者
0
被浏览
40
4 个回答
-
is 比较的是 id 是不是一样,== 比较的是值是不是一样。 每个对象包含 3 个属性:id,type,value id 就是对象地址,可以通过内置函数 id() 查看对象引用的地址。 type 就是对象类型,可以通过内置函数 type() 查看对象的类型。 value 就是对象的值。 is 为 true 则一定有 == 为 true,,反过来 == 为 true 却不一定有 is 为 true 大多数情况下当用 is 和 == 的结果是一样时,用 is 的效率是会高于 == 的效率。
-
is是判断两个引用是不是同一个对象,等价与id(a) ==id(b),即内存地址是否相同。 ==是判断两个引用是否相等,等价于调用魔术方法a.\_\_eq\_\_(b),所以==可以通过\_\_eq\_\_方法重写,而is无法重写
-
等于是字符数字等值比较,is是内存地址是否一致。
-
简单说就是,a==b指a是不是和b一样,a is b指a是不是b