• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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中函数的定义及其调用
    • 这三个好用的python函数你不能不知道!
    • Python函数中的不定长参数相关知识总结
    上一篇:Python自动化测试PO模型封装过程详解
    下一篇:详解Python类和对象内容
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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