作业第12讲,复制列表问题
>>> old =>>> new = old
>>> old =
>>> print(new)
这个new = old 不是相当于把new指向old么,那old改变应该new也改变了呀。为什么print还是原来的。 python中变量名只是标签而已,可以多个标签指向同一块内存
new=old
意味着new和old这两个标签指向了同一块内存
所以你对new和old指向的数据进行改动,比如列表的pop,sort,reverse等操作都会对两者同时产生作用,因为他们修改了内存中的数据
而你将old重新赋值,意味着old标签指向另外一块内存,从此old和new再无瓜葛 BngThea 发表于 2017-12-26 15:47
python中变量名只是标签而已,可以多个标签指向同一块内存
new=old
意味着new和old这两个标签指向了同一 ...
一个标签代表一块内存,那old不应该始终指向一个标签么? ZCYDHHX 发表于 2017-12-26 16:14
一个标签代表一块内存,那old不应该始终指向一个标签么?
内存才是唯一的,一个内存可以有很多标签
但是标签可以换啊,你可以将这个标签贴到其他地方
通俗的例子:
new = old 两个对联贴到张三家
old = 将 old 这个对联贴到了李四家,此时new还是贴在张三家
页:
[1]