Python析构函数__del__定义原理解析


Posted in Python onNovember 20, 2020

析构函数__del__定义:在类里定义,如果不定义,Python 会在后台提供默认析构函数。

析构函数__del__调用:

A、使用del 显式的调用析构函数删除对象时:del对象名;

class Foo:
  



def __init__(self,x):
    



self.x=x
  



def __del__(self): #在对象资源被释放时触发
    



print('-----del------')
    



print(self)




f=Foo(100000)




del f

B、当对象在某个作用域中调用完毕,跳出其作用域的同时析构函数也会被调用一次,这样可以用来释放内存空间。

class Foo:
def __init__(self,x):
  
self.x=x
  def __del__(self): #在对象资源被释放时触发
  
print('-----del------')
    print(self)
f=Foo(100000)
time.sleep(5) #time.sleep(5)执行完后,自动调用__del__()

注意:__del__只是删除了对象的引用,比如上面del f 只是f对象不再执行实例数据的存储空间了,实例数据并没有被删除,删除实例数据需要python本身的垃圾回收机制;

垃圾回收机制

Python 采用垃圾回收机制来清理不再使用的对象;Python 提供gc模块释放不再使用的对象,Python 采用‘引用计数' 的算法方式来处理回收,

即:当某个对象在其作用域内不再被其他对象引用的时候,Python 就自动清除对象;

Python 的函数collect()可以一次性收集所有待处理的对象(gc.collect())

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python yield 小结和实例
Apr 25 Python
Python写的Tkinter程序屏幕居中方法
Mar 10 Python
使用Python的Twisted框架实现一个简单的服务器
Apr 16 Python
Python中%是什么意思?python中百分号如何使用?
Mar 20 Python
python使用socket创建tcp服务器和客户端
Apr 12 Python
Django 配置多站点多域名的实现步骤
May 17 Python
python实现PID算法及测试的例子
Aug 08 Python
python内存管理机制原理详解
Aug 12 Python
Python绘制热力图示例
Sep 27 Python
pytorch 模拟关系拟合——回归实例
Jan 14 Python
Python爬虫获取op.gg英雄联盟英雄对位胜率的源码
Jan 29 Python
python 经纬度求两点距离、三点面积操作
Jun 03 Python
Python request post上传文件常见要点
Nov 20 #Python
接口自动化多层嵌套json数据处理代码实例
Nov 20 #Python
如何设置PyCharm中的Python代码模版(推荐)
Nov 20 #Python
Django vue前后端分离整合过程解析
Nov 20 #Python
基于Python的图像阈值化分割(迭代法)
Nov 20 #Python
Python爬虫Scrapy框架CrawlSpider原理及使用案例
Nov 20 #Python
Pyqt助手安装PyQt5帮助文档过程图解
Nov 20 #Python
You might like
php 不使用js实现页面跳转
2014/02/11 PHP
一个严格的PHP Session会话超时时间设置方法
2014/06/10 PHP
详解PHP中foreach的用法和实例
2016/10/25 PHP
在线编辑器的实现原理(兼容IE和FireFox)
2007/03/09 Javascript
用正则表达式 动态创建/增加css style script 兼容IE firefox
2009/03/10 Javascript
jquery 将disabled的元素置为enabled的三种方法
2009/07/25 Javascript
JavaScript高级程序设计(第3版)学习笔记5 js语句
2012/10/11 Javascript
JQuery操作iframe父页面与子页面的元素与方法(实例讲解)
2013/11/20 Javascript
textarea不能通过maxlength属性来限制字数的解决方法
2014/09/01 Javascript
Javascript中的默认参数详解
2014/10/22 Javascript
jQuery实现拖动调整表格单元格大小的代码实例
2015/01/13 Javascript
javascript事件冒泡和事件捕获详解
2015/05/26 Javascript
实践中学习AngularJS表单
2016/03/21 Javascript
Jquery获取当前城市的天气信息
2016/08/05 Javascript
layui前段框架日期控件使用方法详解
2017/05/19 Javascript
弱类型语言javascript中 a,b 的运算实例小结
2019/08/07 Javascript
基于纯JS实现多张图片的懒加载Lazy过程解析
2019/10/14 Javascript
vue中js判断长时间不操作界面自动退出登录(推荐)
2020/01/22 Javascript
Python 3.3实现计算两个日期间隔秒数/天数的方法示例
2019/01/07 Python
六行python代码的爱心曲线详解
2019/05/17 Python
详解Python直接赋值,深拷贝和浅拷贝
2020/07/09 Python
利用Python如何制作贪吃蛇及AI版贪吃蛇详解
2020/08/24 Python
纯CSS3实现自定义Tooltip边框涂鸦风格的教程
2014/11/05 HTML / CSS
鲜为人知的HTML5语音合成功能
2019/05/17 HTML / CSS
资生堂美国官网:Shiseido美国
2016/09/02 全球购物
什么是数据抽象
2016/11/26 面试题
销售团队口号大全
2014/06/06 职场文书
2014年司法所工作总结
2014/11/22 职场文书
工程款申请报告
2015/05/15 职场文书
研究生论文答辩开场白
2015/05/27 职场文书
军训新闻稿范文
2015/07/17 职场文书
校运会加油稿大全
2015/07/22 职场文书
2015初中团委工作总结
2015/07/28 职场文书
2019年暑期安全广播稿!
2019/07/03 职场文书
遇事可以测出您的见识与格局
2019/09/16 职场文书
如何使用php生成zip压缩包
2021/04/21 PHP