返回顶部

__del__() 析构方法和__call__() 方法

一:析构方法__del__():

 1 '''
 2 当对象在内存中被释放时,自动触发执行
 3 不过一般不用我们释放,Python 解释器会自动释放
 4 '''
 5 class DemoClass:
 6 
 7     def __init__(self,name):
 8         self.name = name
 9 
10     def __del__(self):
11         print("析构了")
12 
13 
14 if __name__ == "__main__":
15     demo = DemoClass("tom")
16     del demo
17 
18     print("=============")
19 '''
20     输出:
21         析构了
22         =============
23         
24 '''

二:"对象()" 调用的方法:__call__() 

 

 1 class DemoClass:
 2 
 3     def __call__(self, *args, **kwargs):
 4         print("I am here")
 5     
 6 
 7 
 8 if __name__ == "__main__":
 9     demo = DemoClass()
10 
11     demo()
12 '''
13     构造方法的执行是由创建对象触发的,即 对象 = 类名();
14     而对于__call__()方法的执行时 由对象后加括号 即:对象()或类名()()
15 
16     我们知道类本身也是个类对象,所以它加括号就是调用产生它的类(元类)的__call__() ,
17         它的__call__()方法返回个实例,所以叫实例化
18 '''
  输出:
    I am here

 

posted @ 2019-08-06 19:11  Zcb0812  阅读(106)  评论(0编辑  收藏  举报