__del__()方法
创建对象后,python解释器默认调用__init__()
方法;
当删除一个对象时,python解释器也会默认调用一个方法,这个方法为__del__()
方法
import time
class Animal(object):# 初始化方法# 创建完对象后会自动被调用def __init__(self, name):print('__init__方法被调用')self.__name = name# 析构方法# 当对象被删除时,会自动被调用def __del__(self):print("__del__方法被调用")print("%s对象马上被干掉了..."%self.__name)# 创建对象
dog = Animal("哈皮狗")# 删除对象
del dogcat = Animal("波斯猫")
cat2 = cat
cat3 = catprint("---马上 删除cat对象")
del cat
print("---马上 删除cat2对象")
del cat2
print("---马上 删除cat3对象")
del cat3print("程序2秒钟后结束")
time.sleep(2)
总结
- 当有1个变量保存了对象的引用时,此对象的引用计数就会加1
- 当使用del删除变量指向的对象时,如果对象的引用计数不会1,比如3,那么此时只会让这个引用计数减1,即变为2,当再次调用del时,变为1,如果再调用1次del,此时会真的把对象进行删除
__del__()方法相关推荐
- python的__new__方法和__del__方法
new()方法会在init之前调用 >>> class CapStr(str):def __new__(cls,string):string = string.upper()retu ...
- python__基础 : 类的__init__,__str__,__del__方法
__init__:当实例化一个类的时候,首相会执行__new__方法创建一个对象,接下来会执行__init__方法对对象的一些属性进行初始化. 所以如果对象有属性,一般会直接写在__init__方法里 ...
- 传智播客python笔记_python传智播客笔记--第十天:隐藏属性,私有属性,私有方法,__del__方法,类的继承,类中方法的重写...
封装,继承,多态 隐藏属性,私有属性,私有方法,__del__方法,类的继承,类中方法的重写 -**************************************************** ...
- 《Python面向对象编程指南》——2.7 __del__()方法
本节书摘来自异步社区<Python面向对象编程指南>一书中的第2章,第2.7节,作者[美]Steven F. Lott, 张心韬 兰亮 译,更多章节内容可以访问云栖社区"异步社区 ...
- Python OOP:面向对象基础,定义类,创建对象/实例,self,创建多个对象,添加对象属性,访问对象属性,__init__方法,带参数的__init__,__str__方法,__del__方法
一.理解面向对象 面向对象是⼀种抽象化的编程思想,很多编程语⾔中都有的⼀种思想. ⾯向对象就是将编程当成是⼀个事物,对外界来说,事物是直接使用的,不用去管他内部的情况.⽽编程就是设置事物能够做什么事. ...
- [转载] python的__del__()方法
参考链接: Python的__name __(特殊变量) 1. 创建多个对象的时候触发__del__方法 Python解释器释放实例对象的时候,调用该对象的__del__方法 各个对象被被Python ...
- Python中__init__和__del__方法介绍
2019独角兽企业重金招聘Python工程师标准>>> __init__方法,在类的一个对象被建立时,马上运行.这个方法可以用来对你的对象做一些你希望的 初始化 .注意,这个名称的开 ...
- python中,__del__方法介绍
Y28 简单例: # 定义一个类 class Person:def __del__(self):print('这个是del方法')# 创建对象(将对象Person赋予变量p1,对象和变量区分开) p1 ...
- python的__del__()方法
创建对象后,Python解释器默认调用__init__()方法.当删除一个对象时,Python解释器也会默认调用一个方法,这个方法为__del__()方法.在Python中,对于开发者来说很少会直接销 ...
最新文章
- python有趣代码-Python有哪些有趣的代码呢,这些代码让
- Spring AOP编程-aspectJ代理方式选择
- 【数据结构】之算法效率的度量
- 项目总是有红叉叉,打开又没错,Build path contains duplicate entry: '...' for project 'X
- 使用代码创建具有organization unit的opportunity
- 从前序与中序遍历序列构造二叉树Python解法
- IdentityServer4系列 | 简化模式
- 在命令行上启用 64 位 Visual C++ 工具集
- carlife android 无线,carlife无线连接流程是什么
- 大数据BI系统如何做数据采集
- 【Axure10基础教程】第六章 动态面板
- Java SE day02 pm
- 如何把iPhone投屏到Mac屏幕上进行演示和录制?
- 关于机械硬盘坏道(超时无响应、低速区域、掉盘)的修复尝试
- 别把职场当官斗,聪明人都在自我成长
- 关于Python爬虫常见的面试题
- linux大型机如何下载数据,如何从大型机传输PS文件到Linux服务器?
- C#笔试题面试题锦集
- VC编译选项 /ML /MLd /MT /MTd /MD /MDd之间的区别
- 贝加莱PLC使用的几个注意点