奇怪的删除

今天偶然遇到一个问题:

a = [1, 2, 3, 4]
b = a
del a[:]
a --> []
b --> []
a = [1, 2, 3, 4]
b = a
del a
a 
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-38-3f786850e387> in <module>()                              
----> 1 a                                                                  
                                                                           
NameError: name 'a' is not defined                                         
b --> [1, 2]

一瞬间有点反应不过来,不过仔细想想也就大概明白了。
del a[:] 相当于删除 a 中的每个元素,a 这个引用仍然在,同样的也会删除 b 中每个元素。而 del a 是直接删除 a 这个引用,但是 b 这个引用仍然在。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容