美多商城
熟悉一下远古毕业设计难度
深拷贝与浅拷贝
深拷贝与浅拷贝python的赋值与c++不同
问题缘由 之前被坑过一次,结果忘了总结。这次写元胞自动机的时候发现了这个bug,让我迷惑很久才想起来这个问题,遂记录。
具体如下:
a=[1,2,3]b=aa.append(1)print('a =',a,'b=',b)# a = [1, 2, 3, 1] b= [1, 2, 3, 1]b.append(11)print('a =',a,'b=',b)# a = [1, 2, 3, 1, 11] b= [1, 2, 3, 1, 11]print(id(a),id(b))# 3002845450824 3002845450824
c++使用变量前会需要先声明变量,故每一个变量都会先有一个地址,而python不需要先命名故会发生这种奇怪的情况,于是就引出了python中的变量空间问题。
python中的拷贝可以理解为创建一个新的命名空间,而不是’真正的拷贝’
浅拷贝
只会被可变类型第一项进行拷贝,不会对子对象进行拷贝。
什么是可变类型?list,dict ...