1、二者区别
- == 是比较两个对象的内容是否相等,即两个对象的“值“”是否相等,不管两者在内存中的引用地址是否一样。
- is 比较的是两个实例对象是不是完全相同,它们是不是同一个对象,占用的内存地址是否相同。即is比较两个条件:1.内容相同。2.内存中地址相同
2、 python中对于None值的比较:使用is
因为None只有一个实例。
>>> a ="" >>> a is None False >>> b ="aa" >>> b is None False >>> b is not None True
3、根本区别
首先要知道Python中对象包含的三个基本要素,分别是:id(身份标识)、type(数据类型)和value(值)。
==是python运算符中的比较操作符,用来比较判断两个对象的value(值)是否相等
例如:
a = 'abc'
b = 'abc'
print a ==b >>>>True
is也被叫做同一性运算符,这个运算符比较判断的是对象间的唯一身份标识,也就是id是否相同。
例如:
a = [1,2,3]
b = [1,2,3]
print id(a), id(b) >>>>4389046392 , 4389177464
print a is b >>>>False
只有数值型和字符串型的情况下,a is b才为True,当a和b是tuple,list,dict或set型时,a is b为False
作者:非常没想法
链接:https://www.jianshu.com/p/a41ad2ff2963
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。