首先要知道Python中对象包含的三个基本要素,分别是:id(身份标识)、type(数据类型)和value(值)。
is和==都是对对象进行比较判断作用的,但对对象比较判断的内容并不相同。下面来看看具体区别在哪。
1.is和==两者都是对对象的比较和判断。
2.is 用于判断两个变量引用对象是否为同一个, == 用于判断引用变量的值是否相等。
3.is也被叫做同一性运算符,这个运算符比较判断的是对象间的唯一身份标识,也就是id是否相同。
只有数值型和字符串型的情况下,a is b才为True,当a和b是tuple,list,dict或set型时,a is b为False。
例:
>>> a=10 >>> b=10 >>> a is b True >>> a="hello" >>> b="hello" >>> a is b True >>> a=(1,2,3) >>> b=(1,2,3) >>> a is b False >>> a=[1,2,3] >>> b=[1,2,3] >>> a is b False >>> a={'a':1,'b':2} >>> b={'a':1,'b':2} >>> a is b False >>> b is a False >>> id(a) 1975164839296 >>> id(b) 1975164839360 >>> a=set([1,2]) >>> b=set([1,2]) >>> id(a) 1975165181728 >>> id(b) 1975165181504 >>> a is b