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和php通信乱码问题解决方法
Apr 15 Python
python中查看变量内存地址的方法
May 05 Python
让Python代码更快运行的5种方法
Jun 21 Python
在阿里云服务器上配置CentOS+Nginx+Python+Flask环境
Jun 18 Python
老生常谈python函数参数的区别(必看篇)
May 29 Python
利用Python循环(包括while&for)各种打印九九乘法表的实例
Nov 06 Python
python实现比较类的两个instance(对象)是否相等的方法分析
Jun 26 Python
Python3内置模块random随机方法小结
Jul 13 Python
python数据库操作mysql:pymysql、sqlalchemy常见用法详解
Mar 30 Python
Django调用百度AI接口实现人脸注册登录代码实例
Apr 23 Python
Opencv常见图像格式Data Type及代码实例
Nov 02 Python
python绘图模块之利用turtle画图
Feb 12 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
CodeIgniter模板引擎使用实例
2014/07/15 PHP
PHP依赖注入(DI)和控制反转(IoC)详解
2017/06/12 PHP
PHP面向对象之里氏替换原则简单示例
2018/04/08 PHP
php和html的区别点详细总结
2019/09/24 PHP
js的逻辑运算符 ||
2010/05/31 Javascript
javascript 窗口加载蒙板 内嵌网页内容
2010/11/19 Javascript
JavaScript实现简单的时钟实例代码
2013/11/23 Javascript
浅析tr的隐藏和显示问题
2014/03/05 Javascript
js取模(求余数)隔行变色
2014/05/15 Javascript
angularjs指令中的compile与link函数详解
2014/12/06 Javascript
jQuery使用animate创建动画用法实例
2015/08/07 Javascript
javascript实现自动输出文本(打字特效)
2015/08/27 Javascript
微信小程序的动画效果详解
2017/01/18 Javascript
JS控件bootstrap suggest plugin使用方法详解
2017/03/25 Javascript
vue+Java后端进行调试时解决跨域问题的方式
2017/10/19 Javascript
微信小程序登录数据解密及状态维持实例详解
2019/05/06 Javascript
vue 集成jTopo 处理方法
2019/08/07 Javascript
微信小程序 scroll-view 水平滚动实现过程解析
2019/10/12 Javascript
详解三种方式在React中解决绑定this的作用域问题并传参
2020/08/18 Javascript
windows如何把已安装的nodejs高版本降级为低版本(图文教程)
2020/12/14 NodeJs
详解Python编程中对Monkey Patch猴子补丁开发方式的运用
2016/05/27 Python
python基于SMTP协议发送邮件
2019/05/31 Python
pyqt5、qtdesigner安装和环境设置教程
2019/09/25 Python
如何在Python对Excel进行读取
2020/06/04 Python
Python3读取和写入excel表格数据的示例代码
2020/06/09 Python
澳洲国民品牌乡村路折扣店:Country Road & Trenery Outlet
2018/04/19 全球购物
德国隐形眼镜店:LuckyLens
2018/07/29 全球购物
Ajax的优点和缺点
2014/11/21 面试题
大学生学习2014全国两会心得体会
2014/03/13 职场文书
文案策划专业自荐信
2014/07/07 职场文书
超市仓管员岗位职责范本
2014/09/18 职场文书
鸡毛信观后感
2015/06/11 职场文书
开工典礼致辞
2015/07/29 职场文书
2016年安康杯竞赛活动总结
2016/04/05 职场文书
MySQL 数据丢失排查案例
2021/05/08 MySQL
JavaScript文档对象模型DOM
2021/11/20 Javascript