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的影響
相關文章
相關標籤/搜索