zoukankan      html  css  js  c++  java
  • __getattr__,__getattribute__和__get__的区别

    dir(object)  列出对象的大多数属性

    getattr(object, name) 从object对象中获取name字符串指定的属性 

    hasattr(object, name) 如果object对象中存在指定的属性, 或者能以某种方式通过object 对象获取指定的属性, 返回True

    setattr(object, name, value) 把object对象指定属性的值设为value, 可能会创建一个新属性, 或者覆盖现有的属性

    getattr(obj, 'attr') 以及obj.attr 和hasattr(obj, 'attr')都会触发__getattribute__(obj, 'attr') 方法, 只有当尝试获取指定的属性失败,搜索过obj, class和超类之后调用__getattr__

    del obj.attr 触发Class.__delattr__(obj, 'attr')方法

    dir(obj)触发__dir__(obj)方法

    setattr(obj, name, value) 或则通过obj.attr 设置对象属性时会调用__setattr__(self, name, value)

    描述符是对多个属性运用相同存取逻辑的一种方式。

    描述符是实现了特定协议的类, 这个协议包括__get__, __set__和__delete__方法 

  • 相关阅读:
    JavaScript丨数组元素反转
    Executor框架浅析
    索引相关
    关系型数据库
    Cookie和Session
    HTTP和HTTPS
    TCP,UDP,HTTP
    OSI模型
    剑指Offer19
    剑指Offer03
  • 原文地址:https://www.cnblogs.com/frank-shen/p/10294701.html
Copyright © 2011-2022 走看看