对象比较的两种方式
1. is 比较详解
is
比较的是两个实例对象是不是同一个对象,也就是说两个对象的地址是否是相同的.- 如果
objA is objB = True
等同于id(objA) == id(objB)
2. == 比较详解
==
比较的是两个实例对象的值是否相等,比较的是内存中存放的内容,可以不是同一个对象,只要内容一样就可以了
两种方式的对比
- 我们通常关心的是对象的内容,不是地址,因此
==
比is
的使用频率更大- is通常用来和None进行比较.
a is None or a is not None
is
比较的是两个对象的内存地址是否相同,也就是计算它们的id(obj1)
和id(obj2)
是否相同==
比较的是两个对象的内容是否相同