fezoe 发表于 2020-6-3 20:18:50

零基础入门python12讲第一题

>>> old =
>>> new = old
>>> old =
>>> print(new)
这道题为什么是6. 不是说new 会随old改变而改变吗   old 变成6,为什么new 还是原来的

Twilight6 发表于 2020-6-3 20:24:12

本帖最后由 Twilight6 于 2020-6-3 20:28 编辑

在这里old和 new 都是 列表 的别名,old 和 new 都指向的是 列表

而 old = 是直接赋值,而不是在列表上进行改变就是将 old 重新改变 id指向了新的列表    所以 new 不会改变,因为 列表本身 没发生改变

你可以通过 Python 的内置函数 id() 来查询列表的地址是否相同

old =
new = old
print('old的id地址:',id(old),'new的id地址:',id(new))

你会发现这样 他们的 id 地址相同

而old = 之后呢?

old =
new = old
print('old的id地址:',id(old),'new的id地址:',id(new))
old =
print('old的id地址:',id(old),'new的id地址:',id(new))


你会发现地址不同了,也就是赋值会直接改变地址,而不是在原来列表上进行改变

heidern0612 发表于 2020-6-3 20:24:49

old 指向

new 指向old,也就是指向

old重新指向,

new还是指向

老八秘制 发表于 2020-6-3 20:31:59

啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊求求你了搜索下吧

Richard_Chiang 发表于 2020-6-3 20:53:52

你把变量想象成标签,old是贴到,new = old也是贴到,但是把old贴到,new还是没变

zwhe 发表于 2020-6-6 10:55:30

{:10_334:}
页: [1]
查看完整版本: 零基础入门python12讲第一题