python中的__del__方法
来源:互联网 发布:java分布式缓存框架 编辑:程序博客网 时间:2024/06/08 12:27
先来举个例子说明下del的用法:
del 对象的引用
class Dog: passdog1 = Dog()dog2 = dog1del dog1如图所示:
删除对象的意思就是这个对象所对应的内存空间被释放了
当dog1被删除了,dog2还在,引用计数减掉1而已,内存还不会被释放
实例1:
class Dog:def __del__(self): #当内存不需要的时候调用这个删除方法,python解释器自动调用print(“英雄over”)dog1=Dog() #创建一个对象dog2=dog1del dog1del dog2print(“==========”)得到的结果为:
print(“英雄over”) print(“==========”)
因为两个对象的引用都删除了,则内存空间被释放,会调用__del__方法
然后再输出======
实例2:class Dog:def __del__(self): #当内存不需要的时候调用这个删除方法,python解释器自动调用print(“英雄over”)dog1=Dog() #创建一个对象dog2=dog1del dog1print(“==========”)得到的结果为:
print(“==========”)print(“英雄over”)当删除了dog1,内存空间还没有结束,还不会调用__del__方法,当调用完最后一条语句时,内存空间被释放,调用__del__方法
测量对象引用的个数:
import syssys.getrefcount(引用的对象)
实例:
class T: passt=T()tt=tsys.getrefcount(t)
得到的结果为3,实际的引用个数为2,会比实际的个数多1
注:删除掉的对象引用,是不能拿来当sys.getrefcount()中的参数的
阅读全文
0 0
- python中的__del__方法
- Python的__del__()方法
- Python __init__和__del__方法
- 「python」__del__()方法
- Python __del__
- python 的__del__删除器方法
- Python的Object基类__del__方法
- Python类的专用方法:__init__ | __del__等
- Python 里的 super() 函数和 object.__new__ ()、.__del__() 方法
- python学习八(私有属性、__del__(self)方法)
- Python对象中__del__方法起作用的条件
- python __new__和__del__方法 spyder中运行结果不一致
- python __del__ 调用时机
- 21 Python __del__
- python中__del__使用方法
- Python----__del__, 生命周期结束
- __del__魔法方法
- Python中__del__如何使用
- C# 学习笔录
- Extjs4.x 自动布局-tabs
- 源码编译Eclipse-PTP插件遇到Failed to resolve target definition问题的解决方法
- 1026. 程序运行时间(15)——C语言
- 当vim保存没有编辑权限时,使用sudo命令就能直接保存成功
- python中的__del__方法
- Android 屏幕适配:最全面的解决方案
- 如何在内网(局域网)中发布WebGIS系统
- 使用css实现渐变色背景
- 菲波那切数列的递归与非递归解法以及青蛙跳台阶问题
- 解决官网sublime text3出现无插件控制项问题
- 调整数组顺序使奇数位于偶数前面
- Java 单列模式
- struts2解决下载中文文件乱码问题