请看下面的例子:缓存
>>> a=1
>>> b=1
>>> a is b
True
>>> c=1.0
>>> d=1.0
>>> c is d
Falsespa
是否是很是奇怪,下面解释缘由:对象
上面的例子a,b指向了同一个整形对象,可是c,d却不是只想同一对象,缘由在于字符串
整形和字符串对象是不可变对象,Python高效的缓存这些整形和字符串,Python应用程序中常常会用到这些小型整数,所以Python会缓存这些整数(范围在(-1,100))引用
再有新的引用时,并不建立新的对象。程序