zoukankan      html  css  js  c++  java
  • python学习笔记-面向对象进阶复习小结

    自省

    hasattr(obj,"属性")                     :obj.属性是否存在

    getattr(obj,"属性")                   :获取obj.属性,不存在则报错

    getattr(obj,"属性","默认值")     :获取obj.属性,不存在不报错,返回默认值

    setattr(obj,"属性,"属性的值")     :obj.属性=属性的值

    delattr(obj,"属性")                      : del obj.属性

    __getattr__,__setattr__,__delattr__

    obj点的方式去操作属性时触发的方法

    __getattr__     :     obj.属性                        不存在时触发

    __setattr__     :    obj.属性=属性的值         时触发

    __delattr__     :     del obj.属性                   时触发

    __getitem__,__setitem__,__delitem__

    obj[”属性“]的方式去操作属性时触发的方法

    __getitem__     :obj["属性"]                     时触发

    __setitem__     :obj["属性"]=属性的值     时触发

    __delitem__     :del obj["属性"]                时触发

    __get__,__set__,__delete__

    描述符就是一个新式类,这个类至少要实现上述三个方法的一个

    格式:

    class 描述符:
        def __get__():
            pass
        def __set__():
            pass
        def __delete__():
            pass
    
    class 类:
        name=描述符()
    
    obj=类()
    obj.name  #get
    obj.name="steven" #set
    del obj.name   #delete
    
    

    __getattribute__

    不管属性存在不存在都会触发运行

    当__getattribute__与__getattr__同时存在,只会执行__getattribute__,除非__getattribute__在执行过程中抛出AttributeError

    __del__

    当对象在内存中被释放时,自动触发执行

  • 相关阅读:
    Canvas 3D球形文字云动画特效
    CSS3实现各种表情
    使用html+css+js实现弹球游戏
    CSS3实现图片木桶布局
    JQ实现弹幕效果
    css实现导航切换
    使用JS实现俄罗斯方块游戏
    JS实现文本中查找并替换字符
    Qt笔记之 01主函数和配置文件详解
    C++学习笔记之 异常
  • 原文地址:https://www.cnblogs.com/steven223-z/p/12578480.html
Copyright © 2011-2022 走看看