小数据池.is和==的区别
2018-09-21 19:32 他曾是少年 阅读(227) 评论(0) 收藏 举报一.小数据池:
一种数据缓存机制,也被称为驻留机制,各大编程语言中都有类似的东西,在网上搜索 常量池和小数据池 指的都是同一个内容.
小数据池只针对:整数,字符串,布尔值.其他的数据类型不存在驻留机制
在python中 -5~256 之间的整数会被驻留在内存中,将一定规则的字符串缓存.在使用的时候,内存中只会创建一个该数据的对象 保存在小数据池中,当使用的时候直接从小数据池中获取对象的内存引用,而不需要创建一个新的数据,这样会节省更多的内存区域.
优点:能够提高一些字符串,整数的处理速度,省略创建对象的过程.
缺点:在 "池" 中创建或者插入需要花费更多的时间.
对于数字: -5~256之间的整数会被加到小数据池中,每次使用都是同一个对象.
对于字符串:
1.如果字符串的长度是0或者是1,都会默认进行缓存
2.字符串长度大于1,但是字符串中只包含字母,数字,下环线时才会保存
3.用乘法得到的字符串 ①.乘数为1,仅包含数字,字母,下环线时会被缓存.如果包含其他字符,二长度<=1 也会被驻存 ②.乘数大于1,仅包含数字,字母,下划线这个时候会被缓存,但字符串场地不能大于20.
4.指定驻留.我们可以通过sys模块中的inter()函数来指定要驻留的内容.
二 is和==:
==判断左右两端的值是否相等,是不是一致.
is判断左右两端内容的内存地址是否一样.
我们可以认为,如果内存地址相同.那么值一定是相等的,如果值相等则不一定是同一个对象.
浙公网安备 33010602011771号