比较易懂的说明Python descriptor

官方文档

定义:符合descriptor protocol的对象(object)都称为descriptor,实际上就是实现了__get__(),__set__(),__delete__()中的一种或者多种的对象都可以看作descriptor。(需要注意的是descirptor只能被new-style class调用)

作用:取代默认的属性访问(attribute access)方式。python中,当你访问x.name时,默认的访问方式为:

(1)x.__dict__['name']

(2)type(x).__dict__['name']

(3)tpye(x)的所有baseclass的__dict__['name']

所以当你为type(x)的name属性绑定descriptor后(x=descriptor()),访问x.name不再按照上面的访问方式访问,而是调用descriptor的__get__方法,如果没有定义__get__方法,则返回descriptor本身。

Descriptor相关推荐

  1. python中的新式类与旧式类的一些基于descriptor的概念(下)

    3. Descriptor介绍 3.1 Descriptor代码示例 3.2 定义 3.3 Descriptor Protocol(协议) 3.4 Descriptor调用方法 4. 基于Descri ...

  2. python中的新式类与旧式类的一些基于descriptor的概念(上)

    python中基于descriptor的一些概念(上) 1. 前言 2. 新式类与经典类 2.1 内置的object对象 2.2 类的方法 2.2.1 静态方法 2.2.2 类方法 2.3 新式类(n ...

  3. Python的Descriptor和Property混用

    一句话,把Property和Descriptor作用在同一个名字上,就只有Property好使.

  4. linux 安装包 在此作用域中尚未声明_Linux运行go项目报错:copy_file_range: bad file descriptor...

    这两天在 Linux 环境部署一个 Go 项目遇到一个报错:copy_file_range: bad file descriptor.网上查找各种方法,花了两天的时间,经过一番折腾后才解决,觉得非常有 ...

  5. Python descriptor

    2019独角兽企业重金招聘Python工程师标准>>> 定义:descriptor是一个对象属性,拥有下述的任何一个绑定方法(__set__, __get__, __delete__ ...

  6. Linux Kernel TCP/IP Stack — L1 Layer — NIC Controller — Buffer descriptor table

    目录 文章目录 目录 DMA 与 Buffer descriptor DMA 与 Buffer descriptor NIC Controller 会在 RAM 中建立并为例两个环形队列,称为 BD ...

  7. listener does not currently know of service requested in connect descriptor

    最近装了Oracle 10g,当我用pl/sql去连接的时候,经常报listener does not currently know of service requested in connect d ...

  8. Failed to read artifact descriptor进行安装maven项目出错

    1.  在maven中进行install的时候报出这种错误:clean install -DskipTests=true [INFO] Scanning for projects... [INFO] ...

  9. IDT系列:(一)初探IDT,Interrupt Descriptor Table,中断描述符表

    IDT,Interrupt Descriptor Table,中断描述符表是CPU用来处理中断和程序异常的. 一.有关IDT的基本知识 1.中断时一种机制,用来处理硬件需要向CPU输入信息的情况. 比 ...

  10. ShapeMatching Using Fourier Descriptor

    github地址:https://github.com/AliceLeBrigant/ShapeMatching 这个代码上来就花轮廓,根据轮廓查找相似的,背景必须纯色,商用价值不高. import ...

最新文章

  1. Ubuntu18彻底删除MySQL5.7数据库
  2. Matlab读写二进制文件
  3. php中的魔术函数以及魔术常量
  4. python学习day04
  5. 接上文 ,解决 虚拟机VM,U盘(磁盘)装有系统,将其中系统安装到另外一块磁盘的具体操作
  6. 大整数的因子(信息学奥赛一本通-T1171)
  7. 文本框中只能输入小于等于100的正整数
  8. 树莓派4B安装ffmpeg的方法
  9. JAVA收到网络报文的IP是::1,怎么回事?
  10. BCH码(BCH code)详细分析
  11. 加载行为:未加载用户已选择禁用宏
  12. 如何区别文本是BIG5还是GB?
  13. 利用sublime3 + xmapp使用服务器调试
  14. Linux Wps 缺少字体
  15. 计算机关闭多重网络协议,Win7多重网络问题
  16. 三顾茅庐:从刘备面试孔明得出的选股经验
  17. VSCode 的扩展包C/C++ IntelliSense, debugging, and code browsing的IntelliSense功能无法使用
  18. 王阳明:越是多变时,越要学会进化(附个体进化的底层心力逻辑)
  19. php 提取数字,php如何实现只取数字的功能
  20. Spring MVC controller控制器映射无法访问问题!!!

热门文章

  1. JavaScript中参数带双引号怎么办
  2. linux pv 信号量,Linux信号量PV操作
  3. 原生(OTB)iPhone1.1.2固件破解通用教程
  4. 小程序-----Vscode中微信小程序插件
  5. 财务系统之结算体系架构业务篇
  6. 《数据结构与算法》—— O(3N)=O(N) ?
  7. 一失脚为千古恨,再回头一百年人
  8. Golang Goroutine
  9. 阻塞主线程,等待异步子线程执行完毕再退出主线程,有几种写法?
  10. 鸿蒙OS渲染图,华为P50 Pro渲染图,首发鸿蒙OS系统,1英寸传感器比肩专业单反