11课的一道题
>>> old =>>> new = old
>>> old =
>>> print(new)
最后的答案尽然是
不是old = new = 吗
我哪里想错了。 这个东西就和贴标签一样,
你把old的标签撕下来,贴到6上
这时他俩就没有关系了(列表内置方法不会改变标签) 本帖最后由 倒戈卸甲 于 2020-4-16 16:12 编辑
你的程序逻辑:
第一行代码,创建列表,然后给这个列表贴了标签名old。
第二行代码,将new标签同样贴到了列表上。
第三行代码,创建列表 ,并给其贴了标签old。
注意,这里完全没有new的戏份,所以到第四行打印new自然得到第二行的结果。
作为对比,你可以考虑另外一段代码。
即你不创建新列表,而是将第三行代码改为old.reverse()。那么因为old和new都贴在列表上。你通过old对进行了倒置,访问new也会得到改变后的结果。 形象一点就是
new = old 让你以为是new = old = 。实际上是new = ,old = ,赋值使得两个变量指向的地址相同。
然后给old赋值新的内容,old就指向新的地址了。
页:
[1]