zoukankan      html  css  js  c++  java
  • python之对象回收机制

    1. python中,当程序执行完毕之后,python的垃圾回收机制就会将所有对象回收,清除占用的内存

    请看如下代码

     1 class Parent():
     2     def __init__(self,name):
     3         self.name=name
     4         print('this is Parent_init')
     5 
     6     def __del__(self):
     7         print('回收父类对象...')
     8 
     9 
    10 class Child(Parent):
    11     def __init__(self,name,age):
    12         super().__init__(name)
    13         self.age=age
    14         print('this is Child_init')
    15 
    16     def __del__(self):
    17         print('回收子类对象....')
    18 
    19 #测试
    20 ch=Child('Jane',23)
    21 fc=Parent('Rounie')
    22 #输出
    23 this is Parent_init
    24 this is Child_init
    25 this is Parent_init
    26 回收子类对象....
    27 回收父类对象...

    解释:上面定义了两个类父类Parent和子类Child,子类继承父类。执行测试的两行代码,创建了两个对象,一个子类对象ch,一个父类对象fc。因为类中显式定义了类的内置函数__del__()函数,所以python垃圾回收机制会调用各自__del__()函数完成对对象的回收。当然,如果不显式定义__del__()函数,执行完程序后,系统会自动调用类的内置函数__del__()完成对对象的回收。

       2、对象再引用的回收机制

    通过类的内置__del__()来回收,不管内置__del__()有没有被显式实现

    3、对象引用的回收机制
    __del__()如果被显式实现,对象回收则通过显式__del__()来回收,如果没有被显式实现,则调用内置__del__()来回收
  • 相关阅读:
    spark streaming 入门例子
    ElasticSearch-hadoop saveToEs源码分析
    spark 资源参数调优
    spark 任务运行原理
    spark RDD底层原理
    用实例说明Spark stage划分原理
    Spark任务提交底层原理
    spark shuffle内在原理说明
    iOS 辛格尔顿
    CodeForces 22D Segments 排序水问题
  • 原文地址:https://www.cnblogs.com/rounie/p/12192142.html
Copyright © 2011-2022 走看看