|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- >>> old = [1, 2, 3, 4, 5]
- >>> new = old
- >>> old = [6]
- >>> print(new)
复制代码
为啥这段代码输出的结果是[1,2,3,4,5]呢?
不是说new = old,那么new指向的便是old这个对象,按理来说,new应该随着old的改变而改变啊?为什么结果不会随着old改变?
难道是new指向的只是new的[1,2,3,4,5],所以old改变了,new就没有改变吗?
首先,你定义old = [1, 2, 3, 4, 5],
打个比方:这就好像是将[1, 2, 3, 4, 5]作为宾馆的住户,存到房间里,
old只是一个指向该房间的标签,也就是门牌号。
你这时令 new = old ,其实并不是像你理解的:“new作为old的一个标签",而是new也作为标签指向[1, 2, 3, 4, 5]所在的房间号。
实际上 new = old , 只是把old所表示的对[1, 2, 3, 4, 5]引用浅拷贝了给了new标签。
所以你改变old标签的指向,和new没有关系,他们俩并不是相互包含或者等价关系。
|
|