is是俩个变量指向同一个对象的时候
==是俩个对象的值相同
>>> a = [1, 2, 3]
>>> b = a
>>> b is a
True
>>> b == a
True
>>> b = a[:]
>>> b is a
False
>>> b == a
True
python的缓存只是支持小整型的运算
>>> 100 is 10**2
True
>>> 1000 is 10**3
False
>>> 1000 == 10**3
True
同样的规则适用于字符串
>>> "a" is "a"
True
>>> "aa" is "a" * 2
True
>>> x = "a"
>>> "aa" is x * 2
False
>>> "aa" is intern(x*2)
True