python析构函数用法及注意事项

 更新时间:2021年06月22日 08:15:20   作者:小妮浅浅  
在本篇文章里小编给大家整理的是一篇关于python析构函数用法及注意事项,有需要的朋友们可以学习参考下。

1、主动删除对象调用del 对象;程序运行结束后,python也会自动进行删除其他的对象。

class Animal:
    def __del__(self):
        print("销毁对象{0}".format(self))
cat = Animal()
cat2 = Animal()
del cat2
print("程序结束")

2、如果重写子类的del方法,则必须显式调用父类的del方法,这样才能保证在回收子类对象时,其占用的资源(可能包含继承自父类的部分资源)能被彻底释放。

class Animal:
    def __del__(self):
        print("调用父类 __del__() 方法")
        
class Bird(Animal):
    def __del__(self):
       # super(Bird,self).__del__()  #方法1:显示调用父类的del方法
        print("调用子类 __del__() 方法")
 
cat = Bird()
#del cat   #只能调用子类里面的__del__
#super(Bird,cat).__del__() #方法2:显示调用父类的__del__

函数实例扩展:

#coding=utf-8
'''
魔法方法,被__双下划线所包围
在适当的时候自动被调用
'''
#构造init、析构del
class Rectangle:
  def __init__(self,x,y):
    self.x = x
    self.y = y
    print('构造')
  '''
  del析构函数,并不是在del a对象的时候就会调用该析构函数
  只有当该对象的引用计数为0时才会调用析构函数,回收资源
  析构函数被python的垃圾回收器销毁的时候调用。当某一个对象没有被引用时,垃圾回收器自动回收资源,调用析构函数
  '''
  def __del__(self):
    print('析构')
  def getPeri(self):
    return (self.x + self.y)*2
  def getArea(self):
    return self.x * self.y
if __name__ == '__main__':
  rect = Rectangle(3,4)
  # a = rect.getArea()
  # b = rect.getPeri()
  # print(a,b)
  rect1 = rect
  del rect1
  # del rect
  while 1:
    pass

到此这篇关于python析构函数用法及注意事项的文章就介绍到这了,更多相关python析构函数的使用注意内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python3.5面向对象与继承图文实例详解

    Python3.5面向对象与继承图文实例详解

    这篇文章主要介绍了Python3.5面向对象与继承,结合图文与实例形式详细分析了Python3.5面向对象与继承的相关概念、原理、实现方法及操作注意事项,需要的朋友可以参考下
    2019-04-04
  • Python字符串的基本操作方法(非常详细)

    Python字符串的基本操作方法(非常详细)

    字符串是python中最常见的数据类型,创建字符串只需用引号括起来分配给一个变量即可,这篇文章主要给大家介绍了关于Python字符串的基本操作方法的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-11-11
  • Python实战之天气预报系统的实现

    Python实战之天气预报系统的实现

    本文主要和大家介绍了如何用代码写一款Python版天气预报系统,是Tkinter界面化的,还会制作温度折线图跟气温饼图哦!感兴趣的小伙伴可以尝试一下
    2022-12-12
  • Python for循环与getitem的关系详解

    Python for循环与getitem的关系详解

    这篇文章主要介绍了Python for循环与getitem的关系详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • Manjaro、pip、conda更换国内源的方法

    Manjaro、pip、conda更换国内源的方法

    这篇文章主要介绍了Manjaro、pip、conda更换国内源的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Django中ORM外键和表的关系详解

    Django中ORM外键和表的关系详解

    这篇文章主要介绍了Django中ORM外键和表的关系详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-05
  • python基于搜索引擎实现文章查重功能

    python基于搜索引擎实现文章查重功能

    这篇文章主要介绍了python基于搜索引擎实现文章查重功能,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-05-05
  • python中的json数据和pyecharts模块入门示例教程

    python中的json数据和pyecharts模块入门示例教程

    JSON是一种轻量级的数据交互格式。可以按照.JSON指定的格式去组织和封装数据,这篇文章主要介绍了python中的json数据和pyecharts模块入门,需要的朋友可以参考下
    2022-12-12
  • Python实现APP自动化发微信群消息的示例代码

    Python实现APP自动化发微信群消息的示例代码

    本文主要介绍了Python实现APP自动化发微信群消息的示例代,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下码
    2022-01-01
  • Python中搜索和替换文件中的文本的实现(四种)

    Python中搜索和替换文件中的文本的实现(四种)

    本文主要介绍了Python中搜索和替换文件中的文本的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10

最新评论