ningning415 发表于 2017-7-3 11:40:57

new=old, old变化了,new为什么不跟着变化呢

>>> old=
>>> new=old
>>> od=
>>> print(new)

ButcherRabbit 发表于 2017-7-3 12:01:44

我们可以这样理解存储方式:内存好比一座大楼,变量是门牌号

一开始 我们给这座大楼开了一间房间存储,门牌号叫old,然后再给他命名一个门牌号new

然后你再开一个房间存储,给它个门牌号old,由于old门牌号上面已经命名了,上面那存的房

间,old标签就被撕掉了,贴在那存的房间门上了,原来那间存的房间,还有个门牌号new。

sky 发表于 2017-7-3 13:06:11

{:10_256:}因为你的变量名错了呀 old才对
正经的{:10_256:} 直接给old 赋值一个新的列表 new是不会跟着变的
但是 你改变old的列表 new就跟着变了 比如 old = 3一下
{:10_279:}

这个网站可以可视化这个过程
http://pythontutor.com/

1314xxxxxx 发表于 2017-7-11 21:36:19

new=old
证明new的指针指向old,old指向了另一个值,而new还是指着原来old指着的值。

healther 发表于 2017-7-12 10:26:45

ButcherRabbit 发表于 2017-7-3 12:01
我们可以这样理解存储方式:内存好比一座大楼,变量是门牌号

一开始 我们给这座大楼开了一间房间存储

你说的很容易让人理解,非常感谢,让我对py的理解加深了!

spacex_dragon 发表于 2020-10-27 10:54:54

sky 发表于 2017-7-3 13:06
因为你的变量名错了呀 old才对
正经的 直接给old 赋值一个新的列表 new是不会跟着变 ...

感谢,看完似乎明白了。 # 头像太容易分散注意力!
页: [1]
查看完整版本: new=old, old变化了,new为什么不跟着变化呢