了解前提:

python中变量在第一次赋值时,自动声明,在变量被创建的时候,解释器会根据语法和右侧操作数来决定对象类型

引用计数 :就是记录每一个对象有多少个引用

引用计数器  一个内部跟踪变量


######################################################

简单的说:

浅拷贝就是对引用的拷贝,所谓深拷贝就是对对象的资源的拷贝


######################################################

如果希望复制一个容器对象,以及它里面的所有元素(包含元素的子元素),使用copy.deepcopy,这个方法会消耗一些时间和空间,不过,如果你需要完全复制,这是唯一的方法.

###################################################

"""浅拷贝"""
import copy
aa = [1,2,3]
bb = copy.copy(aa)
print id(aa)    #11533088
print id(bb)    #12014776
bb[0] =100
print bb        #[100, 2, 3]
print aa        #[1,2,3]
#由于数字不可变,修改的时候会替换旧的对象
print [id(x) for x in bb]   #[10247196, 10246388, 10246376]
print [id(y) for y in aa]   #[10246400, 10246388, 10246376]
”“”深拷贝“”“
deepLis = copy.deepcopy(lis)
deepLis[1].append('foo')    
print deepLis   #[['a'], [1, 2,'foo'], ['z', 23]]
print lis       #[['a'], [1, 2], ['z', 23]]