命令行模式下,Python仅仅对比较小的整数对象进行缓存(范围为[-5, 256])缓存起来C语言底层用数组实现,连续分配空间,便于查找,而并非是所有整数对象。
文件模式下,所有数字都会被缓存,范围是:[-无穷大,+无穷大])
缓存实现:[-5,256]仍然底层用数组实现;不在[-5,256]出现的数,缓存到链表中,不连续分配空间。
is和==的区别
is 比较两个对象的 id 值是否相等,是否指向同一个内存地址。
== 比较的是两个对象的内容是否相等,值是否相等,默认调用对象的 __eq__()方法。
is 运算符比 == 效率高,在变量和None进行比较时,应该使用 is。