爱学习520 发表于 2020-3-31 13:53:17

为什么这个不是赋值替换[6],我理解哪里错了

本帖最后由 爱学习520 于 2020-3-31 13:54 编辑



为什么这个不是,不应该是把替换成吗?我哪里理解错了

new和old是关联的呀

Twilight6 发表于 2020-3-31 13:56:03

你这是重新赋值了   等于old 新赋值上了【6】不是在原有的上进行改变 而是覆盖了

qiuyouzhi 发表于 2020-3-31 13:56:12

这不是替换。
和贴标签一样,你把new的标签撕下来贴到
上,这时它和old已经没有关系了
内置方法并不会改变标签

永恒的蓝色梦想 发表于 2020-3-31 13:56:22

new和old不是关联的

BngThea 发表于 2020-3-31 13:56:35

python中变量名只是标签而已,可以多个标签指向同一块内存
new=old
意味着new和old这两个标签指向了同一块内存
所以你对new和old指向的数据进行改动,比如列表的pop,sort,reverse等操作都会对两者同时产生作用,因为他们修改了内存中的数据
而你将old重新赋值,意味着old标签指向另外一块内存,从此old和new再无瓜葛

Twilight6 发表于 2020-3-31 13:58:25

在你还没给old =之前   new 和 old 来源都是 列表   在你将 赋值给了old 之后   new 来源还是而old 来源变成了
这样说能理解嘛哈哈   

重新赋值后id 会变不在是原来的id了

sunrise085 发表于 2020-3-31 14:02:57


python中变量名是标签,你将变量名重新赋值,意味着将这个标签从原来的地址上撕下来贴到新的地址上去了
可以看看我写的帖子

python细节之2、变量名与标签 变量的赋值与修改

爱学习520 发表于 2020-3-31 14:22:46

BngThea 发表于 2020-3-31 13:56
python中变量名只是标签而已,可以多个标签指向同一块内存
new=old
意味着new和old这两个标签指向了同一 ...

简洁明了,说明问题,谢谢你,最佳答案采纳
页: [1]
查看完整版本: 为什么这个不是赋值替换[6],我理解哪里错了