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 : # 对于同一个代码中的变量,初始化对象的变量时,他会从小数据池中寻找

 

posted on 2018-08-09 15:10  python我的最爱  阅读(114)  评论(0编辑  收藏  举报