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代理抓取并验证使用多线程实现
May 03 Python
初步探究Python程序的执行原理
Apr 11 Python
深入Python函数编程的一些特性
Apr 13 Python
Python列表list排列组合操作示例
Dec 18 Python
基于python的socket实现单机五子棋到双人对战
Mar 24 Python
python3.6中@property装饰器的使用方法示例
Aug 17 Python
softmax及python实现过程解析
Sep 30 Python
基于Tensorflow高阶读写教程
Feb 10 Python
python对XML文件的操作实现代码
Mar 27 Python
pyinstaller将含有多个py文件的python程序做成exe
Apr 29 Python
基于python实现复制文件并重命名
Sep 16 Python
Django xadmin安装及使用详解
Oct 26 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开发中常用的8个小技巧
2008/08/27 PHP
Discuz 模板语句分析及知识技巧
2009/08/21 PHP
正确的PHP匹配UTF-8中文的正则表达式
2015/05/13 PHP
PHP实现linux命令tail -f
2016/02/22 PHP
PHP实现简易图形计算器
2020/08/28 PHP
Jquery插件编写简明教程
2014/03/25 Javascript
javascript自定义函数参数传递为字符串格式
2014/07/29 Javascript
jQuery中children()方法用法实例
2015/01/07 Javascript
深入浅析Nodejs的Http模块
2017/06/20 NodeJs
通过实例解析js简易模块加载器
2019/06/17 Javascript
使用JavaScrip模拟实现仿京东搜索框功能
2019/10/16 Javascript
如何在JavaScript中使用localStorage详情
2021/02/04 Javascript
Windows系统配置python脚本开机启动的3种方法分享
2015/03/10 Python
python杀死一个线程的方法
2015/09/06 Python
浅谈终端直接执行py文件,不需要python命令
2017/01/23 Python
Python 数据结构之旋转链表
2017/02/25 Python
Python装饰器实现几类验证功能做法实例
2017/05/18 Python
创建pycharm的自定义python模板方法
2018/05/23 Python
利用python提取wav文件的mfcc方法
2019/01/09 Python
Python变量作用域LEGB用法解析
2020/02/04 Python
python如何求数组连续最大和的示例代码
2020/02/04 Python
使用Keras加载含有自定义层或函数的模型操作
2020/06/10 Python
pytorch 限制GPU使用效率详解(计算效率)
2020/06/27 Python
CSS3中使用RGBA设置透明度的示例
2015/08/04 HTML / CSS
Canvas 文本转粒子效果的实现代码
2019/02/14 HTML / CSS
鱼油专家:Omegavia
2016/10/10 全球购物
加拿大领先家居家具网上购物:Aosom.ca
2020/05/27 全球购物
优秀应届毕业生自荐信
2013/11/16 职场文书
上课玩手机的检讨书
2014/10/01 职场文书
2014年公路养护工作总结
2014/12/04 职场文书
2014年电教工作总结
2014/12/19 职场文书
教师听课评语大全
2014/12/31 职场文书
复兴之路纪录片观后感
2015/06/02 职场文书
小学语文教学随笔
2015/08/14 职场文书
教你怎么用python爬取爱奇艺热门电影
2021/05/20 Python
Mysql文件存储图文详解
2021/06/01 MySQL