birk 发表于 2017-5-1 13:47:33

python 中is和= = 的比较

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


  
页: [1]
查看完整版本: python 中is和= = 的比较