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__

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

  • 相关阅读:
    codesmith 模板
    asp.net 开发知识小结【转】
    一种页面数据错误输入提示方法 【转】
    vs2008 调试js
    安装vs2008出现的问题
    Godaddy主机导入MSSQL数据库教程
    asp.net用url重写URLReWriter实现任意二级域名(续)
    Visio2007 与Microsoft Studio 2008不兼容
    dos 必知八项命令
    Godaddy空间设置说明
  • 原文地址:https://www.cnblogs.com/steven223-z/p/12578480.html
Copyright © 2011-2022 走看看