• __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
  • 相关阅读:
    Fractal
    加工生产调度/爬山Mountain Climbing
    魔板 Magic Squares
    USACO Section 1.5
    USACO Section 1.4(有技巧的枚举)
    卷积神经网络 CNN
    优化算法
    评价分类器的好坏
    梯度消失 / 梯度爆炸以及Xavier初始化
    Dropout
  • 原文地址:https://www.cnblogs.com/zach0812/p/11311152.html
Copyright © 2020-2023  润新知