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析构函数的使用注意内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
python常用操作之使用多个界定符(分隔符)分割字符串的方法实例
在使用Python处理字符串的时候,有时候会需要分割字符,下面这篇文章主要给大家介绍了关于python常用操作之使用多个界定符(分隔符)分割字符串的相关资料,文中通过图文以及实例代码介绍的非常详细,需要的朋友可以参考下2023-01-01PyQt5 QLineEdit输入的子网字符串校验QRegExp实现
这篇文章主要介绍了PyQt5 QLineEdit输入的子网字符串校验QRegExp实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2021-04-04读取json格式为DataFrame(可转为.csv)的实例讲解
今天小编就为大家分享一篇读取json格式为DataFrame(可转为.csv)的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2018-06-06
最新评论