在以前的面试中,有一次被问到is的用法,当场懵逼,今天有空整理了一下这2个运算符的简单用法:
==运算符:测试两个被引用对象是否有相同的值
l = [1, 2, 3]
m = l[:]
print m == l
True
is 运算符:检查对象的同一性,就是检查是指向同一个对象
l = [1, 2, 3]
m = [1, 2, 3]
n = l
print l is m
print n is l
False
True
因为m是另外一个对象的,所以m和l不是指到同一个对象了,结果为False
但是因为小的整数和字符串被缓存并复用了,所以is会告诉是同一个相同的对象
l = 2
m = 2
print l is m
True