为何Python中删除map1后the_best_map仍能输出对应值?
为什么删除map1后the_best_map依然有效?
首先得搞懂Python里变量和对象的核心关系:
- Python的变量更像是指向对象的标签,而非装着值的容器。
- 执行
map1 = "dust2"时,Python先创建了字符串对象"dust2",再让变量map1指向这个对象。 - 接着
the_best_map = map1,这一步只是让the_best_map也指向同一个"dust2"对象,并没有复制这个字符串内容。
再看del map1的实际作用:
del语句仅移除变量到对象的引用关系——也就是把map1这个标签从"dust2"对象上拿掉,并不会直接删除对象本身。- 只要还有其他变量(比如
the_best_map)指向该对象,它就会继续存在,所以你依然能通过the_best_map访问到"dust2"。
你可以用id()函数直观验证两个变量指向的是同一个对象:
map1 = "dust2" the_best_map = map1 print(id(map1)) # 输出和下面的id值完全相同 print(id(the_best_map))
内容的提问来源于stack exchange,提问作者Uğur Özdemir
相关产品推荐
相关产品推荐

