RounieJane

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__()来回收

posted on 2020-01-14 15:12  RounieJane  阅读(1104)  评论(0编辑  收藏  举报

导航