python del函数_python del函数是什么以及如何使用?
这是关于Python里比较难得一个函数,甚至于章节不多,但是讲的内容却很多很多,大家对部分内容不知道有没有过了解——面向对象,而在这里主要用到的函数就是del,大家如果不知道的话,可以跟随小编一起来看下啦~另外,小编还给大家准备了一些特殊的用法,方便大家在遇到时候,有一定的认知。
1.引用计数和对象销毁
对于简单对象,当执行删除对象的操作时会调用__del__()方法。
对于包含循环引用的复杂对象,引用计数器有可能永远也不会归零,这样就很难让__del__()方法被调用。
我们用下面的一个类来看看这个过程中到底发生了什么。class Noisy: def __del__( self ): print( "Removing {0}".format(id(self)) )
我们可以像下面这样创建和删除这个对象。>>> x= Noisy() >>>del x Removing 4313946640
一旦变量被删除,就没有任何地方引用Noisy实例,所以它也可以被清除。
>>> ln = [ Noisy(), Noisy() ] >>> ln2= ln[:] >>> del ln
2.循环引用和垃圾回收
下面我们用这两个类来看看循环引用。class Parent: def __init__( self, *children ): self.children= list(children) for child in self.children: child.parent= self def __del__( self ): print( "Removing {__class__.__name__} {id:d}". format( __class__=self.__class__, id=id(self)) ) class Child: def __del__( self ): print( "Removing {__class__.__name__} {id:d}". format( __class__=self.__class__, id=id(self)) )
3.循环引用和weakref模块
4. __del__()方法和close()方法
__del__()方法最常见的用途是确保文件被关闭。
通常,包含文件操作的类都会有类似下面这样的代码。__del__ = close
这会保证__del__()方法同时也是close()方法。
大家如果碰到其他更复杂的情况最好使用上下文管理器。以上就是关于del的函数能够碰到的几种场景,只需要浏览几遍,就可以理解内容了哦~
python del函数_python del函数是什么以及如何使用?相关推荐
- python del用法_python del()函数用法 -电脑资料
示例程序如下: >>> a = [-1, 3, 'aa', 85] # 定义一个list >>> a [-1, 3, 'aa', 85] >>> ...
- python有哪些函数_python常用函数有哪些
Python常用函数: 1. print()函数:打印字符串 2. raw_input()函数:从用户键盘捕获字符 3. len()函数:计算字符长度 4. format(12.3654,'6.2f' ...
- 用python实现分段函数_python分段函数
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! segmentation fault (core dumped) python脚 ...
- python中的cell函数_python基础-函数
函数的基本使用 函数的参数详解 名称空间与作用域 闭包函数 装饰器 2020.9.11 小白学习,如有错误欢迎指点 参考自egon大佬Python快速入门神器www.zhihu.com 函数 使用函 ...
- 在python中使用关键字define定义函数_python自定义函数def的应用详解
这里是三岁,来和大家唠唠自定义函数,这一个神奇的东西,带大家白话玩转自定义函数 自定义函数,编程里面的精髓! def 自定义函数的必要函数:def 使用方法:def 函数名(参数1,参数2,参数-): ...
- python神秘的魔法函数_Python魔法函数
1.什么是魔法函数 魔法函数即Python类中以__(双下划线)开头,以__(双下划线)结尾的函数,Python提供的函数,可让咱们随意定义类的特性 示例: class Company(object) ...
- python中模块和函数_Python中函数和模块的体验与使用
函数基础 目标 函数的快速体验 函数的基本使用 函数的参数 函数的返回值 函数的嵌套调用 在模块中定义函数 01. 函数的快速体验 1.1 快速体验 所谓函数,就是把 具有独立功能的代码块 组织为一个 ...
- python反序数函数_python range()函数取反序遍历sequence的方法
python range()函数取反序遍历sequence的方法 python中的range函数取反序有两种方式 第一种:先构建一个列表,然后对列表中的元素进行反转. 例如: a=range(5) f ...
- python用psf函数_Python 嵌套函数(高级用法)
Python 嵌套函数(高级用法) 一.嵌套函数(高级用法) 1.嵌套函数 函数的嵌套调用是在"函数调用中再调用其他函数".也就是说:函数嵌套允许在一个函数中调用另外一个函数.如下 ...
最新文章
- 有比 ReadWriteLock更快的锁?
- 11 ORA系列:ORA-01791: 不是 SELECTed 表达式(distinct使用注意点)
- 平流式初沉池贮砂斗计算_除磷药剂如何投加效果最好?投加量如何计算?
- iOS之深入解析少见却神奇的NSProxy类的多种使用
- JAVA获取JVM内存空间和物理内存空间
- Apollo进阶课程㉙丨Apollo控制技术详解——控制器的类型
- System.currentTimeMillis()与日期之间的相互转换
- html表格输入框怎么左移动,当我向CSS中的文本框添加边框时,HTML表单输入会移动...
- [系列教程] Discuz模板的制作方法
- 【秒懂音视频开发】16_AAC解码实战
- 蓝本蓝科技:社群变现的模式有哪些?
- 清华大学交叉信息研究院姚班修改培养模式:姚班、智班、量信班全合并
- 编写js,使用对象字面量的形式创建一个名字为可可的狗的对象,具体信息如下:
- MySQL 序号(排序)函数:row_number() 、rank() 、 dense_rank()、ntile()
- 吸血鬼素数 C/C++
- Revit一款主要用于进行建筑信息建模的软件
- Java笔记14-Java高级编程部分-第八章-多线程
- 《Head First 设计模式》(四):工厂模式
- 关于Oracle的参数是游标,如何处理(mirth)
- 关于asp输出json对象的方法及实例