创建对象后,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__()方法相关推荐

  1. python的__new__方法和__del__方法

    new()方法会在init之前调用 >>> class CapStr(str):def __new__(cls,string):string = string.upper()retu ...

  2. python__基础 : 类的__init__,__str__,__del__方法

    __init__:当实例化一个类的时候,首相会执行__new__方法创建一个对象,接下来会执行__init__方法对对象的一些属性进行初始化. 所以如果对象有属性,一般会直接写在__init__方法里 ...

  3. 传智播客python笔记_python传智播客笔记--第十天:隐藏属性,私有属性,私有方法,__del__方法,类的继承,类中方法的重写...

    封装,继承,多态 隐藏属性,私有属性,私有方法,__del__方法,类的继承,类中方法的重写 -**************************************************** ...

  4. 《Python面向对象编程指南》——2.7 __del__()方法

    本节书摘来自异步社区<Python面向对象编程指南>一书中的第2章,第2.7节,作者[美]Steven F. Lott, 张心韬 兰亮 译,更多章节内容可以访问云栖社区"异步社区 ...

  5. Python OOP:面向对象基础,定义类,创建对象/实例,self,创建多个对象,添加对象属性,访问对象属性,__init__方法,带参数的__init__,__str__方法,__del__方法

    一.理解面向对象 面向对象是⼀种抽象化的编程思想,很多编程语⾔中都有的⼀种思想. ⾯向对象就是将编程当成是⼀个事物,对外界来说,事物是直接使用的,不用去管他内部的情况.⽽编程就是设置事物能够做什么事. ...

  6. [转载] python的__del__()方法

    参考链接: Python的__name __(特殊变量) 1. 创建多个对象的时候触发__del__方法 Python解释器释放实例对象的时候,调用该对象的__del__方法 各个对象被被Python ...

  7. Python中__init__和__del__方法介绍

    2019独角兽企业重金招聘Python工程师标准>>> __init__方法,在类的一个对象被建立时,马上运行.这个方法可以用来对你的对象做一些你希望的 初始化 .注意,这个名称的开 ...

  8. python中,__del__方法介绍

    Y28 简单例: # 定义一个类 class Person:def __del__(self):print('这个是del方法')# 创建对象(将对象Person赋予变量p1,对象和变量区分开) p1 ...

  9. python的__del__()方法

    创建对象后,Python解释器默认调用__init__()方法.当删除一个对象时,Python解释器也会默认调用一个方法,这个方法为__del__()方法.在Python中,对于开发者来说很少会直接销 ...

最新文章

  1. python有趣代码-Python有哪些有趣的代码呢,这些代码让
  2. Spring AOP编程-aspectJ代理方式选择
  3. 【数据结构】之算法效率的度量
  4. 项目总是有红叉叉,打开又没错,Build path contains duplicate entry: '...' for project 'X
  5. 使用代码创建具有organization unit的opportunity
  6. 从前序与中序遍历序列构造二叉树Python解法
  7. IdentityServer4系列 | 简化模式
  8. 在命令行上启用 64 位 Visual C++ 工具集
  9. carlife android 无线,carlife无线连接流程是什么
  10. 大数据BI系统如何做数据采集
  11. 【Axure10基础教程】第六章 动态面板
  12. Java SE day02 pm
  13. 如何把iPhone投屏到Mac屏幕上进行演示和录制?
  14. 关于机械硬盘坏道(超时无响应、低速区域、掉盘)的修复尝试
  15. 别把职场当官斗,聪明人都在自我成长
  16. 关于Python爬虫常见的面试题
  17. linux大型机如何下载数据,如何从大型机传输PS文件到Linux服务器?
  18. C#笔试题面试题锦集
  19. VC编译选项 /ML /MLd /MT /MTd /MD /MDd之间的区别
  20. 贝加莱PLC使用的几个注意点

热门文章

  1. 大公司VS小公司,如何选择,看完恍然大悟
  2. 2023天津大学微电子集成电路工程考研经验分享
  3. 计算机专业考研电路原理,2019电子信息工程考研方向_电路与系统专业解读
  4. 易语言snmp_易语言教程
  5. 为什么绘声绘影10下载好后用不了
  6. 2022工具钳工(中级)操作证考试题库及答案
  7. celery5.2.1以下版本任务调用多耗费1秒
  8. PAT——1057 数零壹
  9. 灵飞经4·西城八部 第十九章 片山微雨(三)
  10. 使用超级计算机计算任务是一种什么样的体验?