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 自动补全(vim)
Nov 30 Python
在Lighttpd服务器中运行Django应用的方法
Jul 22 Python
Python利用ansible分发处理任务
Aug 04 Python
Python实现字符串格式化的方法小结
Feb 20 Python
利用Python将文本中的中英文分离方法
Oct 31 Python
Python数据可视化:饼状图的实例讲解
Dec 07 Python
Python爬虫库requests获取响应内容、响应状态码、响应头
Jan 25 Python
利用python中集合的唯一性实现去重
Feb 11 Python
keras之权重初始化方式
May 21 Python
利用Python实现Excel的文件间的数据匹配功能
Jun 16 Python
Python学习笔记之装饰器
Aug 06 Python
Django URL参数Template反向解析
Nov 24 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数据库抽象层 PDO
2011/05/07 PHP
免费的ip数据库淘宝IP地址库简介和PHP调用实例
2014/04/08 PHP
PHP实现将HTML5中Canvas图像保存到服务器的方法
2014/11/28 PHP
PHP强制转化的形式整理
2020/05/22 PHP
JS性能优化笔记搜索整理
2013/08/21 Javascript
将json对象转换为字符串的方法
2014/02/20 Javascript
NodeJS学习笔记之FS文件模块
2015/01/13 NodeJs
jQuery制作简单柱状图实例
2015/01/28 Javascript
jQuery实现当前页面标签高亮显示的方法
2015/03/10 Javascript
javascript实现简单的贪吃蛇游戏
2015/03/31 Javascript
Java Mybatis框架入门基础教程
2015/09/21 Javascript
js实现简单排列组合的方法
2016/01/27 Javascript
Javascript vue.js表格分页,ajax异步加载数据
2016/10/24 Javascript
JS中from 表单序列化提交的代码
2017/01/20 Javascript
关于Node.js的events.EventEmitter用法介绍
2017/04/01 Javascript
JS实现的ajax和同源策略(实例讲解)
2017/12/01 Javascript
JavaScript 作用域实例分析
2019/10/02 Javascript
在Express中提供静态文件的实现方法
2019/10/17 Javascript
JavaScript代码模拟鼠标自动点击事件示例
2020/08/07 Javascript
[01:05]主宰至宝剑心之遗
2017/03/16 DOTA
Python中无限元素列表的实现方法
2014/08/18 Python
在Python中使用cookielib和urllib2配合PyQuery抓取网页信息
2015/04/25 Python
Python使用ftplib实现简易FTP客户端的方法
2015/06/03 Python
PyQt5如何将.ui文件转换为.py文件的实例代码
2020/05/26 Python
Python解析m3u8拼接下载mp4视频文件的示例代码
2021/03/03 Python
Coach澳大利亚官方网站:美国著名时尚奢侈品牌
2017/05/24 全球购物
欧尚俄罗斯网上超市:Auchan俄罗斯
2018/05/03 全球购物
行政部总经理岗位职责
2014/01/04 职场文书
小学生推普周国旗下讲话稿
2014/09/21 职场文书
代收款委托书范本
2014/10/01 职场文书
公务员年度考核评语
2014/12/31 职场文书
文艺演出主持词
2015/07/01 职场文书
小学运动会前导词
2015/07/20 职场文书
小学生安全教育心得体会
2016/01/15 职场文书
百善孝为先:关于孝道的经典语录
2019/10/18 职场文书
MySQL创建管理RANGE分区
2022/04/13 MySQL