在Python中,赋值符号“=”只是将对象进行了引用,而不是进行对象的复制。(引用地址)
如果想要进行对象的复制,可以使用copy模块的copy函数。copy()函数分为:浅拷贝copy.copy()和深拷贝copy.deepcopy()
浅拷贝b=a.copy():此时,id(a)!=id(b),也就是说a和b是两个独立的对象,但是这两个对象中的数据仍然是引用,如a[0]是b[0]指向的同一对象。即,copy模块的copy函数是浅拷贝:拷贝父对象,但不会拷贝对象的内部子对象。
对于对象的copy()函数,需要import copy后才可使用(而字典和列表不必,可以list.copy()、dict.copy()直接使用copy()方法,并且也是浅拷贝)
深拷贝b=a.copy.deepcopy():a和b完全独立,犹如创建了一个副本。
需要import copy后才可使用(包括字典和列表)
总结:浅拷贝和深拷贝是Python中常用的对象复制方法,开发者在编写代码时应根据具体情况选择使用哪种方法。同时,对于复杂的数据类型和嵌套结构,深拷贝更适合保留数据信息。