为了解参数传递的底层原理,可以学习一下浅拷贝和深拷贝,使用内置函数:copy和deepcody
浅拷贝:不拷贝子对象的内容,只拷贝子对象的引用。
深拷贝:会拷贝子对象的内存,对子对象的修改不影响原对象。
import copy
a=[10,20,30,[5,6]]
b=copy.copy(a)
print('a:',a)
print('b:',b)
b.append(30)
b[3].append(7)
print('------浅拷贝-----')
print('a:',a)
print('b:',b)
运行结果:
深拷贝:
import copy
a=[10,20,30,[5,6]]
b=copy.deepcopy(a)
print('a:',a)
print('b:',b)
b.append(30)
b[3].append(7)
print('------深拷贝-----')
print('a:',a)
print('b:',b)
运行结果:
对比上述两个运行结果可以发现深拷贝对子对象的修改不影响原对象。