zoukankan      html  css  js  c++  java
  • 面向对象(五)-魔法方法

    魔法方法

    定义:以双下划线开头和结尾的方法,这些方法不允许开发者自己定义
    特点:不需要显式的调用,每一个魔法方法都具有特定的触发时机

    目前说过的魔法方法

    • __init__() :对象创建完成后,对对象初始化时会调用
    • __new__() :创建对象的时候,会调用
    • __str__() :直接打印某个对象时候,会调用
    • __repr__() :直接打印某个对象时候,会调用

    1 构造和初始化方法

    2 比较运算符

    3 算术运算符

    4 复合运算符

    5、对象打印

    6、其他方法

    class A: 
    
          def __call__(self):
                print("对象被调用") 
                return 10 
    
          def __del__(self): 
                print("对象被销毁") 
    
    # 情况1 
    a = A() 
    
    del a #删除对象a,此时没有其他对象引用,会自动调用__del__() 
    
    # 情况2 
    a = A() 
    a2 = a # 赋值 
    
    del a # 删除对象a,此时还有a2对象引用,不会自动调用__del__() 
    
    # 情况3 
    a = A()
    a2 = A() 
    del a 
    print('================')
    
     """ 结果: 
    对象被销毁 ===================== 对象被销毁 """ 
    
    # 情况4 
    a = A() 
    print(a()) # 调用__call__ 10
    
  • 相关阅读:
    关于ios6.0和5.0的横竖屏支持方法
    windows环境下搭建vue+webpack的开发环境
    诗歌类网址
    【第1阶段—GIS网址清单】其它杂项
    android内存指标
    Rownum与Order by
    使用反射复制一个JavaBean的对象
    catalog
    oralce中rownum理解
    BlockingQueue
  • 原文地址:https://www.cnblogs.com/duxiangjie/p/14209826.html
Copyright © 2011-2022 走看看