python 深浅拷贝 属性获取,垃圾回收

字数 239阅读 26

说下对python深浅拷贝的理解。并有代码简单实现

浅拷贝:浅拷贝是对于一个对象的顶层拷贝,拷贝了引用,并没有拷贝内容

深拷贝:深拷贝是对于一个对象所有层次的拷贝(递归)

只有一层深浅拷贝没区别:都是

1、如果是可变,地址不同

2、如果是不可变,地址相同

多层

深拷贝:

copy.deepcopy

1、如果所有层都是不可变的,所有层地址相同

2、如果有一个可变的,外层一定不同

3、如果内层中这一层是可变的,地址不同。否则,地址相同

浅拷贝:

copy.copy

内层地址一样

外层地址:

1、如果是可变,地址不同

2、如果是不可变,地址相同

__call__

垃圾回收




动态语言






推荐阅读更多精彩内容