zoukankan      html  css  js  c++  java
  • __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
  • 相关阅读:
    100-days: twelve
    100-days: eleven
    100-days: ten
    [PKUWC 2018]随机算法
    [CTSC 2018]假面
    APIO 2018 游记
    CTSC 2018 游记
    [CQOI 2018]解锁屏幕
    [CQOI 2018]九连环
    [CQOI 2018]破解D-H协议
  • 原文地址:https://www.cnblogs.com/zach0812/p/11311152.html
Copyright © 2011-2022 走看看