码迷,mamicode.com
首页 > 编程语言 > 详细

python变量存储的缓存机制

时间:2019-05-19 19:23:21      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:机制   默认   sof   span   nbsp   提升   不能   print   情况下   

python变量存储的缓存机制

1.  在同一文件(模块)里

1.对于整型而言,-5~正无穷范围内的相同值 id一致

2.对于浮点数而言,非负数范围内的相同值 id一致

3.布尔值而言,值相同情况下,id一致

4.复数的id标识都不相同(在 实数+虚数 这样的结构中)

5.字符串而言,字符串值相同情况下,id一致

6.列表,元组,字典,集合无论什么情况 id标识都不同(但空元组的id标识一样)

2.  不同文件(模块)里,部分数据驻留小数据池中

python提前在内存中创建了-5~256 范围的整数,驻留在了内存的一块区域。如果是不同文件(模块)的两个变量,并在此范围具有了相同的值, 那么id一致.

小数据池只针对:int ,string,bool,以及空元祖(),None关键字 有效

对于字符串来说:

(1)字符串的长度为0或者1,默认驻留小数据池

(2)字符串的长度>1,且只含有大小写字母,数字,下划线时,默认驻留小数据池

(3)用乘法得到的字符串,分两种情况。

1)乘数为1时:无论什么字符串 * 1 , 都默认驻留小数据池

2)乘数大于1时:乘数大于1,仅包含数字,字母,下划线时会被缓存,但字符串长度不能大于20

3.  指定驻留 intern

from sys import intern

a = intern(‘大帅锅&^^1234‘10)

b = intern(‘大帅锅&^^1234‘10)

print(a is b)

可以指定任意字符串加入到小数据池中,无论声明多少个变量,只要此值相同,都指向同一个地址空间

无论是缓存机制还是小数据池的驻留机制,都是为了节省内存空间,提升代码效率

python变量存储的缓存机制

标签:机制   默认   sof   span   nbsp   提升   不能   print   情况下   

原文地址:https://www.cnblogs.com/trent-fzq/p/10890316.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!