描述符介绍与疑惑
描述符本质就是一个新式类,在这个新式类中,至少实现了
__get__,__set__,__delete__中的一个,这也被称为描述符协议。
__get__:调用一个属性时,触发
__set__:为一个属性赋值时,触发
__delete__:采用del删除属性时,触发描述符的作用是用来代理另外一个类的属性的(必须把描述符定义成这个类的类属性,不能定义到构造函数中)
换而言之,描述符类应该与其他类做搭配使用而非单独使用。
# ==== 描述符的定义 ==== class Foo(object): def __get__(self, instance, owner): pass def __set__(self, instance, value): pass def __delete__(self, instance): pass