15736002592 发表于 2019-11-26 16:50:26

谢谢各位

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

>>>
为什么打印出来是这样的呢

冬雪雪冬 发表于 2019-11-26 16:57:14


> old=   old指向地址1
>>> new=old       new也指向地址1
>>> old=      old指向地址2
>>> print(new)    new仍指向地址1

jackz007 发表于 2019-11-26 17:35:39

      old 和 new 是两个变量,它们可以通过赋值指向同一个对象,但是,它们仍然是两个变量,如果其中一个变量被赋新值,那么,变化的也只限于这个变量本身,与另一个变量毫无关系。
      new 和 old 通过赋值一起指向同一个列表,之后,old 被重新赋值指向了列表 ,那么,old 和 new 从此分道扬镳,new 继续指向列表 ,old 指向列表 。

情绪z 发表于 2019-11-26 18:43:06

贴标签不变把new贴在上面,又把old贴再上面。

无言、XZ 发表于 2019-11-26 18:59:10

old 在被你使用 old=时,指向了新值,所以old变成了,而new依然还指向着old原来的地址,也就保持着了。

zltzlt 发表于 2019-11-26 20:30:51

new = old 相当于把 new 标签贴在 old 标签的盒子上,但 old = 就把 old 标签贴在了另外一个盒子上,所以 old 和 new 从这一句之后就没有关系了,old 是 ,new 继续保持 。

gaoxiuhua520 发表于 2022-8-13 21:33:27

分片那会,不是old变, new也跟着变吗
页: [1]
查看完整版本: 谢谢各位