zoukankan      html  css  js  c++  java
  • python描述符机制

    python描述符机制

    class animal:
        def __init__(self):
            self.name='cat'
    cat=animal()
    

    首先需要理解python 在绑定属性时,会发生什么。
    首先,虽然未找到相关依据,python 实例对象在绑定属性时,首先会从__dict__列表查找,如果没有则会创建属性,但是创建之前首先会从一个描述符的维护列表中查看该属性是否属于描述符,如果是,则替换为描述符,否则按照正常操作

    cat 在绑定name属性时,首先会去去object.__dict__列表中查找name属性是否存在,如果不存在继续通过type(object).__dict__查找,以及mro._dict__查找,如果找到“name" 属性,会首先判断其是否为操作符,如果为操作符,则会触发操作符机制,否则的话会通过_setattr_ 添加属性。而这些所有的过程其实都在一个黑魔法,那就是_getattribute。不管是属性绑定还是属性查找,都要首先执行它

  • 相关阅读:
    v-bind v-on
    v-cloak v-text v- html
    centos 6.9安装 jdk
    容器数据卷创建
    MySQL 索引设计概要
    SQL EXPLAIN解析
    数据库范式(1NF/2NF/3NF)
    MySQL索引原理及慢查询优化
    InnoDB 的记录结构和页结构
    mysql explain type详解
  • 原文地址:https://www.cnblogs.com/catnofishing/p/13891884.html
Copyright © 2011-2022 走看看