python第012讲的课后作业求助
>>> old =>>> new = old
>>> old =
>>> print(new)
为什么会显示而不是呢?
而且查看new和old的id也不一样,第011讲中不是说list3=list1,查看list3和list1的id确实是一样的,这是怎么回事呢,求大神指点 old =
new = old
old.append(6)
print(new)
你这样看,new 和 old 就指向同一list了
old = 相当于在内存里开辟了一块新的内存,让old指向它,所以new 和 old指的就是不是同一个list了 new = old 后如果不进行赋值操作的话,注意赋值二字,你可以对这两个append,remove都可以,这两个依然指向同一个内存地址,但是一旦有赋值操作,不管是对new赋值,还是old赋值,那么new就非原来的new,old非原来的old了,虽然名字相同,但也仅此而已。你上面是给old赋了新值,那么原来的old已不可引用,python的垃圾回收机制将其回收了。 火垂るの墓 发表于 2018-6-28 22:41
old =
new = old
old.append(6)
谢谢热心解答{:5_110:} 谢谢解答。 凌九霄 发表于 2018-6-29 00:00
new = old 后如果不进行赋值操作的话,注意赋值二字,你可以对这两个append,remove都可以,这两个依然指向 ...
谢谢解答 火垂るの墓 发表于 2018-6-28 22:41
old =
new = old
old.append(6)
原来是这样,谢谢答主~
页:
[1]