python中的is与==

>>> a = [1, 2, 3]
>>> b = a[:]
>>> b
[1, 2, 3]
>>> id(a)
140278317281792
>>> id(b)
140278317209936
>>> a is b
False
>>> a == b
True

解释:
上述代码中,将a中的元素赋给了b,但是b是新的一个列表,因此与a的地址是不同的。id()方法会将对象的内存输出出来,可以看到a与b输出的地址确实不同。

接下来,is方法是判断a与b的地址是否严格相等,若严格相等,则输出true

==方法判断的是两者的值是否相等,会调用类中重写的__eq__(self, obj)方法。

posted @ 2019-08-29 16:57  点点爱梦  阅读(119)  评论(0编辑  收藏  举报