其他分享
首页 > 其他分享> > 【拷贝问题】

【拷贝问题】

作者:互联网

练习1
下面代码运行后,a、b、c、d四个变量的值,描述错误的是?

import copy
a=[1,2,3,4['a','b','c','d']]
b=a
c=copy.copy(a)
d=copy.deepcopy(a)
a.append(5)
a[4].append('c')

正确结果为:

a==[1,2,3,4,['a','b','c'],5]
b==[1,2,3,4,['a','b','c'],5]
c==[1,2,3,4,['a','b','c']]
d==[1,2,3,4,['a','b']]

解析:

b=a 为引用,除非直接给a重新赋值,否则a变则b变
c=copy.copy(a) 浅拷贝,只会复制父对象,不会拷贝子对象;所以子对象变则c变,父对象变c不变
d=copy.deepcopy(a) 深拷贝,d与a不相关,a不论怎么变不影响d

标签:对象,问题,变则,deepcopy,拷贝,copy,append
来源: https://www.cnblogs.com/txdblog/p/15241601.html