• 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__()来回收
  • 相关阅读:
    Codeforces Round #218 (Div. 2) C题
    Codeforces Round #217 (Div. 2) c题
    求组合数
    hdu 4539(状态压缩dp)
    poj 2923(状态压缩dp)
    项目管理
    java 实现单向链表
    sql
    设计模式
    自己写了一个解析json为table的工具类
  • 原文地址:https://www.cnblogs.com/rounie/p/12192142.html
Copyright © 2020-2023  润新知