首页 > 代码库 > Python的赋值、深拷贝、浅拷贝
Python的赋值、深拷贝、浅拷贝
a=b |
a和b两个对象地址相同 |
a和b两个对象的子对象地址相同 |
a=copy.copy(b) |
a和b两个对象地址不同 |
a和b两个对象的子对象地址相同 |
a=copy.deepcopy(b) |
a和b两个对象地址不同 |
a和b两个对象的子对象地址不同 |
可以通过id(a) 来判断a地址,通过[id(x) for x in a]来判断a的子对象地址。
会发现:
a=b创建的对象,a和b以及a的子对象和b的子对象都是一样的,a或b的更改会彼此影响。两者的引用地址的一样的。
a=copy.copy(b),a只是拷贝了b的引用,创建了一个新的对象,但是两者的子对象是一样的。子对象的更改会创建新的对象,不会互相影响。
a=copy.deepcopy(b),完全是两个对象,同时也创建了新的子对象,两者互不影响。
Python的赋值、深拷贝、浅拷贝
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。