码迷,mamicode.com
首页 > 其他好文 > 详细

析构方法

时间:2020-02-09 09:36:00      阅读:56      评论:0      收藏:0      [点我收藏+]

标签:__del__   code   网络编程   实例   产生   析构   可靠性   关闭   path   

析构方法

  • 在python中存在垃圾回收机制,当程序结时,python自动触发del垃圾回收机制释放内存空间。但是这种
    内存机制只能回收python内存级别的垃圾,网络编程和文件的垃圾处理不了
  • 网络编程和文件产生的垃圾需要开发者在类中单独创建__del__(self)来处理,例如:文件垃圾回收,需要在
    del(self)中关闭文件句柄,才能释放内存空间
  • del 实例对象:开发者通过这种方式来触发del垃圾回收机制
  • 析构方法在释放一个空间之前执行的,用法上和构造方法有异曲同工之妙,构造方法是开辟一片空间之前执行。
  • 什么时候触发del垃圾回收机制
    • 程序员在程序结束时运行del 实例对象触发垃圾回收机制
    • 在__del__(self)中关闭文件句柄或者网络编程相关操作,程序结束后python解释器自动执行del垃圾回收机制,释放内存空间。
    • 某对象借用的操作系统资源还要借用析构方法必须回收回来
    class File:
        def __init__(self, file_path):
            self.f = open(file_path, mode='r', encoding='utf-8')
            # 注意:with as在安全性和可靠性上没有f.open()、f.close()高
    
        def read(self):
            return self.f.read()
    
        def __del__(self):
            self.f.close()
            # __del__(self):方法被称为析构方法,主要用于处理垃圾回收,释放内存空间
    
    
    f = File('/Volumes/workspace/python-study/re_st/属性.py')
    # print(f.read())
    del f
    # del 实例对象:触发__del__(self)方法,释放内存空间
    print(f.read())
    

析构方法

标签:__del__   code   网络编程   实例   产生   析构   可靠性   关闭   path   

原文地址:https://www.cnblogs.com/ddzc/p/12286169.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!