描述符__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 描述符