python垃圾回收机制:当一个对象的引用被完全清空之后,就会调用__del__()方法来清空这个对象

当对象的引用没有被完全清空时,代码如下:

class C():def __init__(self):print('调用构造器创建对象')def __del__(self):print('销毁创建的对象')c1 = C()
c2 = c1
c3 = c1print('=====================================')
print(str(id(c1)) +' , '+ str(id(c2)) +' , '+ str(id(c3)))
print('=====================================')
del c1
del c2
# del c3      先保留c3,不完全删除C()的引用# print(c1)   不注释的话会报错:NameError: name 'c1' is not defined
# print(c2)   不注释的话会报错:NameError: name 'c2' is not defined
print(c3)     #  输出:<__main__.C object at 0x0000023444AF0AC0>print('=====================================')
while True:time.sleep(2)print('循环中.......')

输出结果: 下面的输出结果里面没有显示 “销毁创建的对象”

调用构造器创建对象
=====================================
2423513877184 , 2423513877184 , 2423513877184
=====================================
<__main__.C object at 0x0000023444AF0AC0>
=====================================
循环中.......
循环中.......
循环中.......
循环中.......

当对象的引用完全被清空时,代码如下:

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
class C():def __init__(self):print('调用构造器创建对象')def __del__(self):print('销毁创建的对象')c1 = C()
c2 = c1
c3 = c1print('=====================================')
print(str(id(c1)) +' , '+ str(id(c2)) +' , '+ str(id(c3)))
print('=====================================')
del c1
del c2
del c3    #已经将对象的引用全部删除,程序会自动调用 __del__方法# print(c1)     不注释的话会报错:NameError: name 'c1' is not defined
# print(c2)     不注释的话会报错:NameError: name 'c2' is not defined
# print(c3)     不注释的话会报错:NameError: name 'c3' is not definedprint('=====================================')
while True:time.sleep(2)print('循环中.......')

输出结果:

调用构造器创建对象
=====================================
2873013504704 , 2873013504704 , 2873013504704
=====================================
销毁创建的对象
=====================================
循环中.......
循环中.......
循环中.......
循环中.......

python基础教程: __del__() 清空对象相关推荐

  1. python基础教程第二版和第三版哪个好-python基础教程 2版和3版哪个适合新手?!...

    python基础教程 2版和3版哪个适合新手? 现在学是学python3. 两者的差异发者本身影响并不大,个别语法细微的差比如python3的print数方式使用,一些常用模块的名称差异,一些机制的差 ...

  2. python基础教程视频(全13集)-Python基础视频教程(600集)【传智播客精品教程】...

    Python基础视频教程 初级共600节课 本套视频是传智播客紧抓未来最大趋势--人工智能,应运而生的一套Python入门视频教程,Python是学习人工智能的首选语言,而该视频是专门针对零基础的学员 ...

  3. python基础教程第三版和第二版选哪个-python基础教程 2版和3版哪个适合新手?!...

    python基础教程 2版和3版哪个适合新手? 现在学是学python3. 两者的差异发者本身影响并不大,个别语法细微的差比如python3的print数方式使用,一些常用模块的名称差异,一些机制的差 ...

  4. python基础教程-学习python有什么好的视频教程?

    干货来袭,以下均为python好的学习视频,我们先从python的入门教程开始分享起! python入门教程(600集)https://www.bilibili.com/video/BV1ex411x ...

  5. python基础教程-Python入门教程完整版(懂中文就能学会)

    提取码:sjfo 目录大纲: 本套教程15天 学前环境搭建 1-3 天内容为Linux基础命令 4-13 天内容为Python基础教程 14-15 天内容为 飞机大战项目演练 视频概括: 第一阶段(1 ...

  6. 下载python教程-Python基础教程下载【黑马程序员完整版】

    课程介绍 目录大纲: 1-3 天内容为Linux基础命令 4-13 天内容为Python基础教程 14-15 天内容为 飞机大战项目演练 视频概括: 第一阶段(1-3天): 该阶段首先通过介绍不同领域 ...

  7. 视频教程-快速入门Python基础教程_Python基础知识大全-Python

    快速入门Python基础教程_Python基础知识大全 十余年计算机技术领域从业经验,在中国电信.盛大游戏等多家五百强企业任职技术开发指导顾问,国内IT技术发展奠基人之一. 杨千锋 ¥99.00 立即 ...

  8. Python基础教程,Python入门教程

    Python 是一门上手简单.功能强大.通用型的脚本编程语言.Python 类库极其丰富,这使得 Python 几乎无所不能,网站开发.软件开发.大数据分析.网络爬虫.机器学习等都不在话下. 这套 P ...

  9. python基础教程博客_python基础教程(一)

    之所以选择py交易有以下几点:1.python是胶水语言(跨平台),2.python无所不能(除了底层),3.python编写方便(notepad++等文本编辑器就能搞事情),4.渗透方面很多脚本都是 ...

  10. python基础教程攻略-python基础教程(一)

    之所以选择py交易有以下几点:1.python是胶水语言(跨平台),2.python无所不能(除了底层),3.python编写方便(notepad++等文本编辑器就能搞事情),4.渗透方面很多脚本都是 ...

最新文章

  1. 品牌故事第11期之IBM:连亏168亿都逆袭,蓝色巨人的百年兴衰史
  2. 优秀程序员写代码的七个优秀习惯
  3. 前端接收pdf文件_如何实现springmvc将返回的给前端的pdf文件放在浏览器里预览
  4. 百万奖金!交通事件、医学病理、广告检测,江苏大数据开发与应用大赛报名...
  5. 使用视觉信息,为什么能把移动机器人的空间位置信息记录下来
  6. 10个 Linux/Unix下 Bash 和 KSH shell 的作业控制实例
  7. 中国电子银行网-互联网金融第一大网站
  8. C#中对txt文件的读写操作
  9. Excel2007快捷键大全
  10. 【IT项目管理】第3章 整合项目的资源
  11. wps页眉怎么设置不同页码_WPS论文排版教程二:如何设置不同页码
  12. 工程经济作业1答案_2018年电大《工程经济与管理》阶段作业1及答案(网上作业).doc...
  13. iOS 开发:『Runtime』详解(二)Method Swizzling
  14. 关于三方协议不得不说的注意事项
  15. 算法提高课-图论-欧拉回路和欧拉路径-AcWing 1123. 铲雪车:披着欧拉回路外衣的小学数学题
  16. DNS-named服务器配置
  17. 数据分析师—Excel函数篇
  18. Lesson 18 Electric currents in modern art 内容鉴赏
  19. 谷歌地球和谷歌地图区别
  20. (批处理)使用bat如何取出文件夹里子文件夹下的文件?

热门文章

  1. [TPYBoard - Micropython之会python就能做硬件 2] 利用micropython控制NOKIA 5110屏
  2. 浅谈软件性能测试中关键指标的监控与分析(转)
  3. Linux CentOS下配置SVN+SVN勾子
  4. spoj 8222 Substrings (后缀自动机)
  5. libsvm 数据预处理 模块化程序
  6. 【转载】ABAP中数据和对象的动态创建和调用
  7. 文本文件、Excel文件上传下传
  8. 取供应商客户的期初表
  9. abap CA CO CS等操作符
  10. 通过 OLE 上传资料