说下对python深浅拷贝的理解。并有代码简单实现
浅拷贝:浅拷贝是对于一个对象的顶层拷贝,拷贝了引用,并没有拷贝内容
深拷贝:深拷贝是对于一个对象所有层次的拷贝(递归)
只有一层深浅拷贝没区别:都是
1、如果是可变,地址不同
2、如果是不可变,地址相同
多层
深拷贝:
copy.deepcopy
1、如果所有层都是不可变的,所有层地址相同
2、如果有一个可变的,外层一定不同
3、如果内层中这一层是可变的,地址不同。否则,地址相同
浅拷贝:
copy.copy
内层地址一样
外层地址:
1、如果是可变,地址不同
2、如果是不可变,地址相同
__call__
垃圾回收
动态语言
网友评论