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实现的石头剪子布代码分享
Aug 22 Python
Flask框架的学习指南之开发环境搭建
Nov 20 Python
python安装教程 Pycharm安装详细教程
May 02 Python
python实现汉诺塔算法
Mar 01 Python
python创建与遍历List二维列表的方法
Aug 16 Python
python生成任意频率正弦波方式
Feb 25 Python
Python图像处理库PIL的ImageGrab模块介绍详解
Feb 26 Python
详解Python IO编程
Jul 24 Python
Python如何重新加载模块
Jul 29 Python
selenium+python实现基本自动化测试的示例代码
Jan 27 Python
PySwarms(Python粒子群优化工具包)的使用:GlobalBestPSO例子解析
Apr 05 Python
Python音乐爬虫完美绕过反爬
Aug 30 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 heredoc和phpwind的模板技术使用方法小结
2008/03/28 PHP
PHP下编码转换函数mb_convert_encoding与iconv的使用说明
2009/12/16 PHP
php之Smarty模板使用方法示例详解
2014/07/08 PHP
thinkphp特殊标签用法概述
2014/11/24 PHP
PHP实现抓取Google IP并自动修改hosts文件
2015/02/12 PHP
PHP程序中使用adodb连接不同数据库的代码实例
2015/12/19 PHP
JQUERY 浏览器判断实现函数
2009/08/20 Javascript
jQuery实现鼠标滑过遮罩并高亮显示效果
2013/07/16 Javascript
jQuery+ajax实现动态执行脚本的方法
2015/01/27 Javascript
JQuery之proxy实现绑定代理方法
2016/08/01 Javascript
javascript 判断页面访问方式电脑或者移动端
2016/09/19 Javascript
js 获取本地文件及目录的方法(推荐)
2016/11/10 Javascript
从零开始搭建一个react项目开发
2018/02/09 Javascript
nodejs取得当前执行路径的方法
2018/05/13 NodeJs
NodeJS有难度的面试题(能答对几个)
2019/10/09 NodeJs
[06:33]3.19 DOTA2发布会 海涛、冷冷、2009见证希望
2014/03/21 DOTA
python使用rsa加密算法模块模拟新浪微博登录
2014/01/22 Python
python中的__slots__使用示例
2015/02/26 Python
简单介绍Python的轻便web框架Bottle
2015/04/08 Python
python模拟enum枚举类型的方法小结
2015/04/30 Python
python实现简单购物商城
2016/05/21 Python
Python中的日期时间处理详解
2016/11/17 Python
基于Python闭包及其作用域详解
2017/08/28 Python
Django 过滤器汇总及自定义过滤器使用详解
2019/07/19 Python
python开头的coding设置方法
2019/08/08 Python
Anaconda配置pytorch-gpu虚拟环境的图文教程
2020/04/16 Python
使用PyCharm安装pytest及requests的问题
2020/07/31 Python
西海岸男士和男童服装:Johnnie-O
2018/03/15 全球购物
印尼第一大家居、生活和家具电子商务:Ruparupa
2019/11/25 全球购物
企划专员岗位职责
2013/12/09 职场文书
四查四看剖析材料
2014/02/14 职场文书
2015年上半年党建工作总结
2015/03/30 职场文书
项目技术负责人岗位职责
2015/04/13 职场文书
经理岗位职责范本
2015/04/15 职场文书
2015年安全保卫工作总结
2015/05/14 职场文书
linux下导入、导出mysql数据库命令的实现方法
2021/05/26 MySQL