1.描述器是什么?

在Python中描述器也被称为描述符,

1)描述器实际上是任何新式类(新式类是继承自 type 或者 object 的类),这种类至少实现了3个特殊的方法__get__, __set__, __delete__中的一个。而这3个特殊的方法充当描述器协议的作用。

2)同时实现了__get__()__get__()的类被称为数据描述器(data descriptor)。只实现了 __get__() 方法的类是非数据描述器(常用于方法,当然其他用途也是可以的)。

2. 描述器有啥用?

描述器功能强大,应用广泛,它可以控制我们访问属性、方法的行为,是@property、super、静态方法、类方法、甚至属性、实例背后的实现机制,是一种比较底层的设计,描述器在Python自身中广泛使用,以实现Python 2.2中引入的新式类。描述器简化了底层的C代码,并为Python的日常编程提供了一套灵活的新工具。

3. 描述器的简单例子

python 简单了解一下 描述器-LMLPHP

当访问一个属性时,我们可以不直接给一个值,而是接一个描述器,让访问和修改设置时自动调用__get__方法和__set__方法。再在__get__方法和__set__方法中进行某种处理,就可以实现更改操作属性行为的目的。这就是描述器做的事情。

参考:

https://www.jb51.net/article/87455.htm

https://www.cnblogs.com/JetpropelledSnake/p/8953988.html

https://www.cnblogs.com/liujiacai/p/10064774.html

05-18 21:55