• Python 垃圾回收机制


    # 就像我们生活中会产生垃圾一样,程序在运行过程当中也会产生垃圾
    # 程序运行过程中产生的垃圾会影响到程序的运行的运行性能,所以这些垃圾必须被及时清理
    # 没用的东西就是垃圾
    # 在程序中没有被引用的对象就是垃圾,这种垃圾对象过多以后会影响到程序的运行的性能
    #   所以我们必须进行及时的垃圾回收,所谓的垃圾回收就是讲垃圾对象从内存中删除
    # 在Python中有自动的垃圾回收机制,它会自动将这些没有被引用的对象删除,
    #   所以我们不用手动处理垃圾回收
    #   
    '''Python 采用自动引用计数(ARC)方式来回收对象所占用的空间,
    当程序中有一个变量引用该 Python 对象时,
    Python 会自动保证该对象引用计数为 1;当程序中有两个变量引用该 Python 对象时,
    Python 会自动保证该对象引用计数为 2,依此类推,如果一个对象的引用计数变成了 0,
    则说明程序中不再有变量引用该对象,表明程序不再需要该对象,因此 Python 就会回收该对象。'''
    
    ''' 当一个对象被垃圾回收时,Python 就会自动调用该对象的 __del__ 方法。
    需要说明的是,不要以为对一个变量执行 del 操作,该变量所引用的对象就会被回收,
    只有当对象的引用计数变成 0 时,该对象才会被回收。
    因此,如果一个对象有多个变量引用它,那么 del 其中一个变量是不会回收该对象的。'''
    class A:
        def __init__(self):
            self.name = 'A类'
    
        # del是一个特殊方法,它会在对象被垃圾回收前调用
        def __del__(self):
            print('A()对象被删除了~~~',self)
    
    a = A()
    b = a # 又使用一个变量b,来引用a对应的对象
    
    print(a.name)
    
    # a = None # 将a设置为了None,此时没有任何的变量对A()对象进行引用,它就是变成了垃圾
    # b = None
    # del a
    # del b
    # input('回车键退出...')
  • 相关阅读:
    让我偷偷的告诉你:运维加薪的杀手锏是啥?
    网站页面优化必然趋势—WebP 图片!
    如何监控 Tomcat?Zabbix 与 Cloud Insight 对比
    网页增重不可控?试试 OneAPM Cloud Test
    提高 ASP.NET Web 应用性能的 24 种方法和技巧
    OneAlert 入门(三)——事件分析
    Cloud Insight 客户案例-晨芯时代科技有限公司
    Java开发快速上手
    微信小程序快速开发上手
    微信小程序快速开发上手
  • 原文地址:https://www.cnblogs.com/jzxs/p/11413975.html
Copyright © 2020-2023  润新知