is:以 id(内存地址)为基础。是否指向同一个对象。
==:以值为基础
>>> p=3
>>> q=3
>>> p is q
True
>>> p=3.
>>> q=3.
>>> p is q
False
>>> c = 257
>>> def foo():
... a = 257
... b = 257
... print a is b
... print a is c
...
>>> foo()
True
False
1、小整数对象[-5,256]是全局解释器范围内被重复使用,永远不会被GC回收。
2、同一个代码块中的不可变对象,只要值是相等的就不会重复创建新的对象。