python的小数据池和深浅拷贝

小数据池

  1. 一种数据缓存机制,也称驻留机制python

  2. 在同一代码块,相同的值不会开辟新的内存缓存

  3. 特殊字符除外工具

  4. 小数据池只针对:在控制台时!code

    • 数字 :-5到256间的整数会被缓存内存

    • 布尔值:都会缓存8字符串

    • 字符串pycharm

      • 小于等于一个字符时会缓存class

      • 超过一个字母可是只有下划线,字母,数字组成也会缓存import

      • 若是字符串乘法,那小于等于20个就会缓存,超过则开辟新的内存im

      • 手动缓存,须要调用工具

        from sys import intern
        a=intern("alex@qq.com"*5)
        b=intern("alex@qq.com"*5)
        a is b
        #True
    • 在同一.py文件或pycharm中也有本身的小数据池,也是只会缓存str ,int ,bool类型,

      可是小数据池会比外面的大.

      • 数字都会缓存,运算的结果在-5到256之间会缓存,大于就不会缓存
      • 默认的字符串都会缓存,若是执行乘法则与上面结论一致
      • 布尔值默认缓存

深浅拷贝

a=[a,b,[a,b],c]
b=a#此时b指向的是a的内存地址,改动数值两个都变,若将a从新赋值则b不会改变,仍是指向原先地址
a=a[:]#切片是浅拷贝
import copy
c=copy.copy(a)#浅拷贝,若a更改第一层的元素c不受影响,a若更改可变因素里的内容c也跟着改变
d=copy.deepcopy(a)#深拷贝,彻底不受a的影响
相关文章
相关标签/搜索