Python析构函数__del__定义原理解析
作者:yoyo008 发布时间:2023-01-02 15:20:29
标签:python,垃圾,回收,析构,函数,del
析构函数__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())
来源:https://www.cnblogs.com/yoyo008/p/9602962.html


猜你喜欢
- 本文实例讲述了js鼠标按键事件和键盘按键事件用法。分享给大家供大家参考,具体如下:keydown,keyup,keypress:属于你的键盘
- 大家好,今天给大家分享一下明哥整理的一篇 Python 参数的内容,内容非常的干,全文通过案例的形式来理解知识点,自认为比网上 80% 的文
- 神经网络在机器学习中有很大的应用,甚至涉及到方方面面。本文主要是简单介绍一下神经网络的基本理论概念和推算。同时也会介绍一下神经网络在数据分类
- 本文实例为大家分享了python3实现点餐系统的具体代码,供大家参考,具体内容如下题目: 某餐厅外卖每天更新菜品,
- 今天遇到了这样一个问题,使用matplotlib绘制热图数组中横纵坐标自然是图片的像素排列顺序,但是这样带来的问题就是画出来的x,y轴中坐标
- fetchone() 返回单个的元组,也就是一条记录(row),如果没有结果 则返回 Nonefetchall() 返回多个元组,即返回多个
- 方法一,用for循环来实现num=[];i=2for i in range(2,100): j=2 for j in
- 绘制一个线框图是你在制作一个网站前必须要经历的过程。线框图能够帮助你合理的组织并简化你内容和元素,是网站内容布局的基本视觉表现方式,是网站开
- 这次主要是爬了京东上一双鞋的相关评论:将数据保存到excel中并可视化展示相应的信息主要的python代码如下:文件1#将excel中的数据
- 上一篇相关文章:段正淳的css笔记(2)圆角的做法 1、标题右侧“更多”的实现曾经做上图所示的效果,会使用到position来相对定位到h2
- 有时候需要一次性将SQL Server中的数据导出给其他部门的也许进行关联或分析,这种需求对于SSIS
- 一.docx模块Python可以利用python-docx模块处理word文档,处理方式是面向对象的。也就是说python-docx模块会把
- 本文实例为大家分享了python3实现多张图片附件邮件发送的具体代码,供大家参考,具体内容如下直接上代码,没有注释!from email.m
- 如何制作K线图?也不难,代码和说明见下:<%@ Language=VBScript %><%Respo
- 本文实例讲述了Python实现读取并保存文件的类。分享给大家供大家参考,具体如下:这个类写在一个叫class_format.py 的文件里,
- 我就废话不多说了,直接上代码吧!a=[[1,2,3],[4,5][6,7]["a","b""
- 本文将介绍如何使用 Vue 和第三方组件库 Element UI 实现轮播图功能。我们将从以下几个方面进行讲解:安装 Element UI创
- 日志记录器(Logger)是日志处理的核心组件。log4j具有5种正常级别(Level)。1. static Level DEBUG :DE
- MaxPooling1D和GlobalMaxPooling1D区别import tensorflow as tffrom tensorflo
- 记录训练过程history=model.fit(X_train, Y_train, epochs=epochs,batch_size=bat