码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2019-08-06 19:45:45      阅读:86      评论:0      收藏:0      [点我收藏+]

标签:main   __init__   nbsp   创建   执行   call   name   不用   实例化   

一:析构方法__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

 

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

标签:main   __init__   nbsp   创建   执行   call   name   不用   实例化   

原文地址:https://www.cnblogs.com/zach0812/p/11311152.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!