转自:http://blog.csdn.net/love1code/article/details/47276683

python中的del用法比较特殊,新手学习往往产生误解,弄清del的用法,可以帮助深入理解python的内存方面的问题。

python的del不同于C的free和C++的delete。

由于python都是引用,而python有GC机制,所以,del语句作用在变量上,而不是数据对象上。

if __name__=='__main__':
a=1 # 对象 1 被 变量a引用,对象1的引用计数器为1
b=a # 对象1 被变量b引用,对象1的引用计数器加1
c=a #1对象1 被变量c引用,对象1的引用计数器加1
del a #删除变量a,解除a对1的引用
del b #删除变量b,解除b对1的引用
print(c) #最终变量c仍然引用1

del删除的是变量,而不是数据。

另外。关于list。

if __name__=='__main__':
li=[1,2,3,4,5] #列表本身不包含数据1,2,3,4,5,而是包含变量:li[0] li[1] li[2] li[3] li[4]
first=li[0] #拷贝列表,也不会有数据对象的复制,而是创建新的变量引用
del li[0]
print(li) #输出[2, 3, 4, 5]
print(first) #输出 1

最新文章

  1. Win10 VC++6 无法启动此程序,因为计算机中丢失mfc42d.dll 需要提升
  2. HTML table、form表单标签的介绍
  3. MQTT和WebSocket
  4. 整合Struts2、Hibernate、Spring
  5. 去除inline-block之间的间隙
  6. Sort List
  7. Codeforces Round #322 (Div. 2) C. Developing Skills 优先队列
  8. asp.net中的App_GlobalResources和App_LocalResources使用
  9. HortonWorks
  10. Gradle 使用Maven本地缓存
  11. MeshRenderer组件及相关API
  12. jmeter监控服务资源
  13. java Domj4读取xml文件加强训练案例
  14. Android入门第一课之Java基础
  15. 虚拟机 安装centos
  16. CSS之user-select——设置标签中的文字是否可被复制
  17. shapefile 转 geojson 文件类型
  18. 转:Android文件存储路径getFilesDir()与getExternalFilesDir的区别
  19. 使用CSP防止XSS攻击
  20. 多线程Java Socket编程示例

热门文章

  1. vue在组件中使用v-model
  2. Vue进行路由跳转的几种方式
  3. 常用的一些js校验
  4. Docker 镜像 容器 仓库
  5. [转载]MII/MDIO接口详解
  6. poj1419 Graph Coloring 最大独立集(最大团)
  7. [易学易懂系列|rustlang语言|零基础|快速入门|(11)|Structs结构体]
  8. parted分区的步骤
  9. VM架构设计文档初稿v0.01
  10. java redirect用法