1、數值拷貝
import copy# ######數字、字串######n1 = 123print(id(n1))n2 = n1print(id(n2))###淺拷貝###n2 = copy.copy(n1)print(id(n2))###深拷貝###n3 = copy.deepcopy(n1)print(id(n3))
C:\Users\811314\AppData\Local\Programs\Python\Python35-32\python.exe C:/homework/day3/1.py
492322480
492322480
492322480
492322480
Process finished with exit code 0
2、字串
import copy# ######數字、字串######n1 = "my name is hellworld"print(id(n1))n2 = n1print(id(n2))###淺拷貝###n2 = copy.copy(n1)print(id(n2))###深拷貝###n3 = copy.deepcopy(n1)print(id(n3))
C:\Users\811314\AppData\Local\Programs\Python\Python35-32\python.exe C:/homework/day3/1.py
5973920
5973920
5973920
5973920
Process finished with exit code 0
import copy# ######數字、字串######n1 = ["helloworld","hapen"]print(id(n1))n2 = n1print(id(n2))###淺拷貝###n2 = copy.copy(n1)print(id(n2))###深拷貝###n3 = copy.deepcopy(n1)print(id(n3))
C:\Users\811314\AppData\Local\Programs\Python\Python35-32\python.exe C:/homework/day3/1.py
12817912
12817912
10370784
12816672
Process finished with exit code 0
對於 數字 和 字串 而言,賦值、淺拷貝和深拷貝無意義,因為其永遠指向同一個記憶體位址。
淺拷貝,在記憶體中只額外建立第一層資料
深拷貝,在記憶體中將所有的資料重新建立一份(排除最後一層,即:python內部對字串和數位最佳化