描述符__get__(),__set__(),__delete__()(三十七)

Posted xiangtingshen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了描述符__get__(),__set__(),__delete__()(三十七)相关的知识,希望对你有一定的参考价值。

http://www.cnblogs.com/linhaifeng/articles/6204014.html#_label12

描述符是什么:描述符本质就是一个新式类,在这个新式类中,至少实现了__get__(),__set__(),__delete__()中的一个,这也被称为描述符协议
__get__():调用一个属性时,触发
__set__():为一个属性赋值时,触发
__delete__():采用del删除属性时,触发

定义一个描述符

 

 

 

描述符是干什么的:描述符的作用是用来代理另外一个类的属性的(必须把描述符定义成这个类的类属性,不能定义到构造函数中)

 

描述符分两种
一 数据描述符:至少实现了__get__()和__set__()

 class Foo:
     def __set__(self, instance, value):
         print(set)
     def __get__(self, instance, owner):
         print(get)

非数据描述符:没有实现__set__()

class Foo:
     def __get__(self, instance, owner):
         print(get)

 

以上是关于描述符__get__(),__set__(),__delete__()(三十七)的主要内容,如果未能解决你的问题,请参考以下文章

Python进阶-----描述符(__get__(),__set__(),__delete__())

十八.描述符(__get__,__set__,__delete__)

描述符get/set/delete,init/new/call,元类

了解 __get__ 和 __set__ 以及 Python 描述符

描述符(__get__,__set__,__delete__)

描述符