Python 中is和= = 的比较

2014-11-24 02:29:33 · 作者: · 浏览: 2

Python中的对象包含三要素:id、type、value


其中id用来唯一标识一个对象,type标识对象的类型,value是对象的值


is判断的是a对象是否就是b对象,是通过id来判断的


==判断的是a对象的值是否和b对象的值相等,是通过value来判断的


python is主要是判断2个变量是否引用的是同一个对象,如果是的话,则返回true,否则返回false


>>> a = '123'
>>> b = '123'
>>> a == b
True
>>> a is b
True
>>>


a is b 返回true,因为变量a和b都存储了字符串'123'对象的地址。


>>> a = '123'
>>> b = '123456'
>>> a == b
False
>>> a is b
False
>>>


print a is c 返回false,因为变量a和c存储了字符串对象地址不一致。



>>> a = 1
>>> b = 1.0
>>> a is b
False
>>> a == b
True
>>> id(a)
12777000
>>> id(b)
14986000
>>> a = 1
>>> b = 1
>>> a is b
True
>>> a == b
True
>>> id(a)
12777000
>>> id(b)
12777000


推荐阅读: