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定时器使用示例分享
Feb 16 Python
实例讲解Python中函数的调用与定义
Mar 14 Python
Python实现TCP协议下的端口映射功能的脚本程序示例
Jun 14 Python
详解python里使用正则表达式的分组命名方式
Oct 24 Python
Python实现的朴素贝叶斯算法经典示例【测试可用】
Jun 13 Python
解决python3 Pycharm上连接数据库时报错的问题
Dec 03 Python
Python小游戏之300行代码实现俄罗斯方块
Jan 04 Python
python 如何将数据写入本地txt文本文件的实现方法
Sep 11 Python
python实现数据清洗(缺失值与异常值处理)
Dec 02 Python
python能做哪方面的工作
Jun 15 Python
Django vue前后端分离整合过程解析
Nov 20 Python
pytorch中[..., 0]的用法说明
May 20 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应用提速面面观
2006/10/09 PHP
基于HTTP长连接的"服务器推"技术的php 简易聊天室
2009/10/31 PHP
PHP中鲜为人知的10个函数
2014/02/28 PHP
php动态生成函数示例
2014/03/21 PHP
php数组合并与拆分实例分析
2015/06/12 PHP
smarty循环嵌套用法示例分析
2016/07/19 PHP
如果文字过长,则将过长的部分变成省略号显示
2006/06/26 Javascript
完美解决JS中汉字显示乱码问题(已解决)
2006/12/27 Javascript
jQuery Div中加载其他页面的实现代码
2009/02/27 Javascript
js控制web打印(局部打印)方法整理
2013/05/29 Javascript
JS小功能(checkbox实现全选和全取消)实例代码
2013/11/28 Javascript
js中传递特殊字符(+,&)的方法
2014/01/16 Javascript
Javascript中3种实现继承的方法和代码实例
2014/08/12 Javascript
JS实现完全语义化的网页选项卡效果代码
2015/09/15 Javascript
JS区分浏览器页面是刷新还是关闭
2016/04/17 Javascript
JS实现显示带倒影的图片横排居中放大展示特效实例【测试可用】
2016/08/23 Javascript
Vue.js组件tree实现无限级树形菜单
2016/12/02 Javascript
详解vue v-model
2020/08/31 Javascript
python实现2048小游戏
2015/03/30 Python
Python中实现参数类型检查的简单方法
2015/04/21 Python
玩转python selenium鼠标键盘操作(ActionChains)
2020/04/12 Python
Sanic框架路由用法实例分析
2018/07/16 Python
Keras设定GPU使用内存大小方式(Tensorflow backend)
2020/05/22 Python
opencv+python实现鼠标点击图像,输出该点的RGB和HSV值
2020/06/02 Python
Keras: model实现固定部分layer,训练部分layer操作
2020/06/28 Python
Matplotlib配色之Colormap详解
2021/01/05 Python
英国香水店:The Perfume Shop
2017/03/27 全球购物
Booking.com美国:全球酒店预订网站
2017/04/18 全球购物
澳大利亚领先的优质葡萄酒拍卖会:Langton’s Fine Wines
2019/03/24 全球购物
限量版运动鞋和街头服饰:TheDrop
2020/09/06 全球购物
求职简历中个人的自我评价
2013/12/25 职场文书
三八红旗手先进事迹材料
2014/05/13 职场文书
社会工作专业求职信
2014/07/15 职场文书
2014年学习全国道德模范事迹思想汇报
2014/09/15 职场文书
4S店销售内勤岗位职责
2015/04/13 职场文书
浅谈Python 中的复数问题
2021/05/19 Python