b=a #赋值,传对象的引用
c=copy.copy(a) #对象拷贝,浅拷贝
d=copy.deepcopy(a) #对象拷贝,深拷贝
深拷贝:深拷贝是地址的拷贝,深拷贝就是完全跟以前就没有任何关系了,原来的对象怎么改都不会影响当前对象,
浅拷贝:浅拷贝是值的拷贝,原对象的list元素改变的话会改变当前对象,如果当前对象中list元素改变了,也同样会影响原对象
通常复制的时候要用深拷贝,因为浅拷贝后,两个对象中不可变对象指向不同地址,相互不会改变,但是两个对象中的可变元素是指向相同的地址,一个变了,另一个会同时改变,会有影响(list是可变对象)
不可变对象包括:int,float,complex,long,str,unicode,tuple、
浅拷贝时拷贝的新对象里的可变元素与原对象里的可变元素指向同一个地址,浅拷贝时只拷贝了浅层次的数据结构(不可变元素),深层次的可变元素并没有拷贝到新地址里,深拷贝则会把深层次的可变元素和浅层次的不可变元素到拷贝到新地址里面去。