首页 > 其他 > 详细

五.析构方法 __del__

时间:2020-12-30 13:30:51      阅读:20      评论:0      收藏:0      [点我收藏+]

五.析构方法 __del__

前面我们学了 __init__ 这个构造方法, 在实例对象的时候自动触发, 也叫初始化, 而析构方式是在执行 del对象的时候, 也就是在对象被清理之前自动触发 __del__ 的执行, 那么我们就可以在这方法里面进行一些操作, GC操作时触发的就是 __del__

1.__def__的使用场景

  • 一般用来进行回收系统资源的操作
  • 如果一个对象仅仅占用应用程序的资源时, 垃圾回收机制会自动回收应用程序所被占用的资源
  • 当对象涉及到申请了操作系统的资源, 比如 open打开了文件, 或者与网络连接等, GC无法派上用场, 那么就需要我们重写一下 __del__ 的功能
class Test:
    def __del__(self):
        print("删除对象, 触发了我")

T = Test()
del T  # 删除对象, 触发了我
  • 重写示例 : 对象中打开了一个文件
class Open:
    def __init__(self):
        self.f = open("test26.py","rt",encoding="utf-8")  # 打开了一个文件

    def __del__(self):
        self.f.close()  # 触发执行的时候, 关闭文件(系统资源的回收)
        print("删除对象之前我关闭了文件,哈哈")

O = Open()
del O      # 删除对象之前我关闭了文件,哈哈

五.析构方法 __del__

原文:https://www.cnblogs.com/songhaixing/p/14210829.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!