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

Posted zach0812

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了__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

 

以上是关于__del__() 析构方法和__call__() 方法的主要内容,如果未能解决你的问题,请参考以下文章

Python入门-6面向对象编程:04__del__方法(析构函数)和垃圾回收机制-__call__方法和可调用对象

033.Python的__del__析构方法he__call__方法

python 之简单聊聊 析构函数和特殊的__call__方法

类的析构方法__del__

__del__ 析构方法 __init__ 构造方法

Python __析构方法__del__