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析构函数的使用注意内容请搜索179885.Com以前的文章或继续浏览下面的相关文章希望大家以后多多支持179885.Com!

猜你在找的python析构函数用法及注意事项相关文章

Python遵循面向对象的编程范式。它处理声明python类,从它们创建对象并与用户交互。在面向对象的语言中,程序被分成独立的对象,或者你可以说成几个小程序。每个对象代
ipython是一个非常流行的python解释器,比python解释器好用很多,本文重点给大家介绍Python中使用ipython的详细教程,需要的朋友参考下吧
不可否认,互联网已成为“存在之魂”,其活动以“连接”或“网络”为特征。使用套接字的最关键的基础之一,使这些网络成为可能。本文涵盖了有关使用Python进行套接字编
Djangorestframework-simplejwt是Django REST Framework框架的一个jwt插件,使用 python http 工具进行接口测试的方法文中给大家提到,重点给大家分享djangorestfram
聚类是一种机器学习技术,它涉及到数据点的分组,聚类是一种无监督学习的方法,是许多领域中常用的统计数据分析技术。本文给大家分享Python实现DBSCAN聚类算法并样例测
本文带领大家学习Python答题卡识别并给出分数的实现代码,代码实现思路清晰,简单易懂,Python识别答题卡相关知识感兴趣的朋友一起看看吧
介绍了python生成可执行exe控制Microsip自动填写号码并拨打,在这需要注意一个问题,必须是已经运行Microsip.exe文件,具体实现代码跟随小编一起看看吧
当我们需要对后台的数据进行过滤的时候,drf有两种,搜索过滤和排序过滤。本文就详细的介绍这两种的实现,感兴趣的可以了解一下
今天给大家带来的是关于Python的相关知识,文章围绕着利用Python实现预测NBA比赛结果展开,文中有非常详细的介绍,需求的大佬可以参考下
在聊天工具大肆侵入我们生活各个方面的今天,各种消息无时无刻不在侵扰我们的每一寸时间,这种情况下,一个聊天的机器人就很有必要了.今天,我们来学习一下使用 Pyth
不可否认,互联网已成为“存在之魂”,其活动以“连接”或“网络”为特征.使用套接字的最关键的基础之一,使这些网络成为可能.本文涵盖了有关使用Python进行套接字
图像的位运算是指对图像的数值按照二进制值逐位进行取反、与、或、异或操作,本文就带大家了解相关知识,需求的大佬可以参考下