相关资料

Python的描述符 - 下一站,我等你 - 博客园

https://www.cnblogs.com/Lynnblog/p/9033455.html

描述符的本质类

什么是描述符

Python为开发者提供了一个非常强大的功能——描述符。那什么是描述符呢?通过查看Python的官方文档,我们知道把实现了__get__()、__set__()和__delete__()中的其中任意一种方法的类称之为描述符,描述符的本质是新式类,并且被代理的类(即应用描述符的类)也是新式类。描述符的作用是用来代理一个类的属性,需要注意的是描述符不能定义在类的构造函数中,只能定义为类的属性,它只属于类的,不属于实例,我们通过查看实例和类的字典即可知晓。

描述符是可以实现大部分Python类特性中最底层的数据结构的实现手段,我们常使用的@classmethod、@staticmethd、@property、甚至是__slots__等属性都是通过描述符来实现的。它是很多高级库和框架的重要工具之一,是使用到装饰器或者元类的大型框架中的一个非常重要组件。在一般的开发中我们可能用不到描述符,但是我们如果想要开发一个大型的框架或者大型的系统,那使用描述符会起到如虎添翼的作用。它的加盟将会使得系统更加完美。
  

描述符的分类:两种类别

描述符分为数据描述符和非数据描述符。

》数据描述符

把至少实现了内置属性__set__()和__get__()方法的描述符称为数据描述符;

》非数据描述符

把实现了除__set__()以外的方法的描述符称为非数据描述符。

python-描述符基本相关推荐

  1. python描述符(descriptor)、属性(property)、函数(类)装饰器(decorator )原理实例详解

    2019独角兽企业重金招聘Python工程师标准>>> 1.前言 Python的描述符是接触到Python核心编程中一个比较难以理解的内容,自己在学习的过程中也遇到过很多的疑惑,通过 ...

  2. python有哪些作用-python描述符有什么作用

    python描述符的作用:代理一个类的属性,让程序员在引用一个对象属性时自定义要完成的工作:它是实现大部分Python类特性中最底层的数据结构的实现手段,是使用到装饰器或者元类的大型框架中的一个非常重 ...

  3. Python描述符是什么?

    在Python中,通过使用描述符,程序员可以在引用对象属性时定制要完成的工作,接下来我们一起来聊聊Python描述符相关的知识. 本质上,描述符是一个类,但它定义了另一个类中属性的访问模式.换句话说, ...

  4. python描述符详解_Python描述符 (descriptor) 详解

    1.什么是描述符? python描述符是一个"绑定行为"的对象属性,在描述符协议中,它可以通过方法重写属性的访问.这些方法有 __get__(), __set__(), 和__de ...

  5. python 描述符类_python的黑魔法--描述符

    python的黑魔法 描述符 官方定义:python描述符是一个"绑定行为"的对象属性,在描述符协议中,它可以通过方法重写属性的访问.这些方法有 get(), set(), 和de ...

  6. python 描述符有什么用_介绍python描述符的意义

    你也许经常会听到「描述符」这个概念,但是由于大多数的程序员很少会使用到他,所以可能你并不太清楚了解它的原理,python视频教程栏目将详细介绍 推荐(免费):python视频教程 但是如果你想自己的事 ...

  7. 技术图文:Python描述符 (descriptor) 详解

    背景 今天在B站上学习"零基础入门学习Python"这门课程的第46讲"魔法方法:描述符",这也是我们组织的 Python基础刻意练习活动 的学习任务,其中有这 ...

  8. python 描述符参考文档_python 描述符详解

    Python中包含了许多内建的语言特性,它们使得代码简洁且易于理解.这些特性包括列表/集合/字典推导式,属性(property).以及装饰器(decorator).对于大部分特性来说,这些" ...

  9. python描述符与实例属性_Python 中的属性访问与描述符

    在Python中,对于一个对象的属性访问,我们一般采用的是点(.)属性运算符进行操作.例如,有一个类实例对象foo,它有一个name属性,那便可以使用foo.name对此属性进行访问.一般而言,点(. ...

  10. python描述符详解

    什么是描述符 数据描述符data descriptor和非数据描述符non-data descriptors 如何检测一个对象是不是描述符 描述符有什么用和好处 例子 总结 本文主要介绍描述符的定义, ...

最新文章

  1. Git 的简单使用及ssh配置问题-赖大大
  2. 图灵奖得主Raj Reddy:以历史的视角重新审视“人工智能”
  3. 服务器系统需要定期清理吗,windows 2008服务器系统清理
  4. 配置Fedora15 x86_32
  5. 关于Visual Studio 2010与64位系统的问题
  6. 何谓 SQL 注入,这个漫画告诉你!
  7. python函数做n_简单Python函数的O(N)时间复杂性
  8. mfc 消息消息队列概念_消息队列面试连环问
  9. 1621: [Usaco2008 Open]Roads Around The Farm分岔路口(记忆化搜索)
  10. java t800,T800KPI绩效考核系统C#源码
  11. 郭克华老师java视频教程下载地址
  12. 深入浅出mysql pdf_深入浅出MySQLpdf_深入浅出MySQL下载_深入浅出MySQLmobi
  13. 服务器专用影子系统,试试最牛X的影子系统!瞬间创建N个账号
  14. 钉钉isv接入三方应用授权鉴权流程
  15. 2011年计算机类会议汇总
  16. GPU视频压缩1—Flexible CTU-level parallel motion estimation by CPU and GPU pipeline for HEVC
  17. yarn logs 查看日志
  18. 杭州c语言开发招聘,杭州招银网络科技
  19. linux培训 通知
  20. Java代码一键生成神器,支持Jpa/Mybatis/plus多种ORM框架,亲测好用

热门文章

  1. VSCode内npm run build编译打包时候报错:code ELIFECYCLE - (已解决)
  2. 大学计算机要学什么内容,大学计算机课程学习路线应该是怎么样的呢?
  3. linux去重某一列,Linux shell命令统计某列去重后的值
  4. ThinkCMF是一款支持Swoole的开源内容管理框架,基于ThinkPHP开发,同时支持PHP-FPM和Swoole双模式,让WEB开发更快!
  5. 网钛CMS PHP版蓝色响应式UI美化模板
  6. java直接读取rar,Java无需解压直接读取Zip文件和文件内容
  7. sublime 插件安装;sublime的 babel、sublime-jsfmt插件
  8. 新换密交友玩法月老盲盒微信小程序源码_支持分销支付等功能
  9. html新一代网页播放器源码 未加密
  10. 手机firebug查看网页代码 How to View Website Source Codes on iPad / iPhone