Python 中 is 与 == 的区别

正文

Python中的对象包含三要素:id、type、value。
其中id用来唯一标识一个对象,type标识对象的类型,value是对象的值。
is判断的是a对象是否就是b对象,是通过id来判断的。
==判断的是a对象的值是否和b对象的值相等,是通过value来判断的。

看下面的例子:

1
2
3
4
5
6
7
8
9
10
11
12
In [1]: a={'a':'abc','b':'cde'}
In [2]: a
Out[2]: {'a': 'abc', 'b': 'cde'}
In [3]: b=a.copy()
In [4]: a is b
Out[4]: False
In [5]: a == b
Out[5]: True

另外,当判断返回是否为空时,一般用is

1
2
if result is None:
reutrn False

参考资料

[1] Python中is和==的区别