Python中=、copy、deepcopy

一、Python中的“=”

a = 1
b = 1
c = a
print(id(a))
print(id(b))
print(id(c)) #输出为
140707841037344
140707841037344
140707841037344

上面代码中创建常量1,a、b和c都指向1,当没有变量指向1,释放常量1内存。

二、Python中copy

import copy

a = [1,2,3]
b = copy.copy(a)
print(id(a))
print(id(b)) #输出为
2075181435016
2075181315464

上述代码中copy会开劈新的内存来存储list地址,但不会开辟内存存储list中的值。

三、Python中deepcopy

import copy

a = [1,2,3,[4,5,6]]
b = copy.deepcopy(a)
c = copy.copy(a) print(id(a[3]))
print(id(b[3]))
print(id(c[3])) #输出为
2043580692680
2043580693000
2043580692680

上述copy会开辟新的内存来存储list地址,但不会开辟内存存储list中的值。

deepcopy会开辟新的内存来存储list地址,但也会递归开辟内存存储list中的值。

上一篇:JavaScript 运行机制详解


下一篇:[转载]ExtJs4 笔记(10) Ext.tab.Panel 选项卡