1.代码块:
一个模块一个函数一个类,一个文件都是代码块
在交互模式下, 每一行都是一个代码块
2. is ==
内存地址 就是id门牌号
在内存中id是唯一,如果两个变量指向的id相同,那么他们在内存中的值也是相同的
is 判断的是两个变量的id值是否相同
3. 小数据池(缓存机制,驻留机制)
小数据池的应用类型, 数字,字符串,布尔值
小数据池, Python对内存的一个优化
他讲 -5~256的整数,以及一定规则的字符串(数字,字符串,下划线), 提前在内存中创建,容器中固定放一些数
这里的话讲一个指定驻留,
from sys import intern def func(): i1 = intern('@@1000') print(id(i1)) def func1(): i2 = intern('@@1000') print(id(i2)) func1() func()
从上面可以看出,func 和 func1是两个不同的代码块, i1和i2都包含特殊字符,通过intern实现了强制放入小数据池的效果,这两个数据都是指向同一个内存地址的
创建小数据池的作用:
减少内存
提高性能和效率
pycharm : #对于同一个代码块中的变量, 初始化对象的变量命名时,如果代码遇到初始化命令时,他会先从代码块的字典中寻找,如果存在相同的值,他会实现复用
python : # 对于同一个代码中的变量,初始化对象的变量时,他会从小数据池中寻找